Soyutlamanın tam tersi nedir? [kapalı]


19

Anladığım kadarıyla soyutlama, değiştirmeden daha basit bir şeyden daha fazla anlam yaratıldığında kullandığımız terimdir. Latince fiil abstrahere'den türetilmiştir ('çekmek'). Örneğin, metin, bitmapler gibi ikili verilerin yalnızca bir soyutlamasıdır. Yani, bilgisayarlarda, metin ve bitmapler ikili verilerin üstünde bulunur.

Sorum şu: tam tersi nedir? Bitmap'lerin ikili veriler dışında uygulanabileceği daha temel şeyleri bilmek istersem - bir mozaik için fayans veya bir patchwork yorgan için kumaş yamalar gibi şeyler - ne istiyorum? Bunun için bir kelime var mı?

Soyutlamanın genelleme çağrışımları vardır ve bunun tersi bir süreç uzmanlaşmadır. IDK bunun yardımcı olup olmadığı.


7
Bu İngilizce'de daha uygun olabilir.
Péter Török

3
Bazı durumlarda basitlik. Ben sadece işleri daha karmaşık hale getiren korkunç soyutlamalar gördüm;
William

Bu kavramın tatmin edici bir kelimesi olmadığını düşünüyorum. Para bir tane sağlar: "soyutlama"
Conor Cosnett

Yanıtlar:


8

Uygulama.

Soyutlama kısa kelimelerdir, gerçek bir dünya şeyin (azaltılmış) modelini elde etme ve bir kavram ya da fikir için “kompakt” olma zihinsel sürecidir.

Yani tam tersi bir kavram ya da fikir alıp onu gerçek bir dünyaya dönüştürmektir ;-)


2
Bunu, tamamlayıcı bir kavram kadar zıt olarak adlandırır mıyım bilmiyorum. Her zaman olduğu gibi, programlamada bir soyutlama yaptığınızda, soyutlamanın saklandığı uygulamaya da sahipsiniz. Ancak, sorunun sorduğu şey bu gibi görünüyor.
jhocking

@jhocking Bir arabanın frenleri ve gaz pedalı karşıt, ama aynı zamanda tamamlayıcı. Şerefe.
umlcat

Platonik alemden (salt) fiziksel gerçekliğe kadar eterik bir soyutlamanın "tezahürü"
Conor Cosnett

41

6
Ben 'somutlaştırma' kullanımına katılmama rağmen - bu biraz hantal bir kelime ... 'somutlaştırma' daha iyi olmaz mıydı? thefreedictionary.com/concretion
HorusKol

1
Konkresyon kesin.
Zachary Yates

Betondan sonra betona yerleştirilmiş mi? Sadece soruyorum :-)
JensG


4

"Somut", "soyut" un zıttıdır, dolayısıyla "soyutlama" nın zıttı mantıksal olarak "somutlaştırma" dır. Bununla birlikte, tam olarak anlamlı bir zıtlık yoktur, çünkü genellikle sadece soyutlama hakkında konuşursunuz ve nadiren bunun tersini düşünürsünüz.


3

Sıfırdan başlayalım. Her şeyden önce, soyutlama gerçekten nedir?

Sorun / Güdü

Programladığınızda, genellikle çok ayrıntılı sorunları çözmeniz gerekir.

Soyutlamanın temel sebebi, kendinizi programınızın tüm sorunu tek bir birim olarak ele aldığı bir durumda, dikkat ve anlayış gerektiren birçok küçük farklı özelliğe sahip olabileceğiniz zamandır. Buradaki sorun, insanların bu kadar büyük miktarda veriyi aynı anda işlemesinin zor olmasıdır.

Çözüm: Soyutlama

Eğer mümkün olabilmesi için de fikrinizi gerçekleştirmek için gereken sadece anlamaya , ayıklamak ayrıntılı çözümleri içine basitleştirilmiş soyutlamalar .

Örneğin, SQL'in nesnelere soyutlandığı ORM'ye (Nesne-İlişkisel Eşleme) bakalım.

Bir veritabanına soyutlama olmadan yeni bir öğe eklemek için, bir programcı SQL bilmek zorundadır. Dolayısıyla, yeni bir öğe eklemek için bir programcının tabloya yeni bir öğe eklemek için SQL sözdizimini hatırlaması gerekir:

INSERT INTO Items (field1, field2) VALUES (value1, value2)

Ancak soyutlamalarla, programcının sadece ne yapmak istediğinin fikrinin farkında olması gerekir . Nesneye yönelik bir soyutlama şöyle görünebilir:

Item item = new Item(value1, value2)

Hatta biraz daha ileri gidebilir ve SQL'in kendisinin basit bir bildirim dili öğrenmenin fiyatı için tamamen parmaklarınızın ucunda olan tonlarca karmaşık veri depolama yapısı ve algoritması için büyük bir soyutlama olduğunu düşünebilirsiniz.


Soyutlamanın Karşısı

Şimdi soyutlamanın sadece eldeki özlü kavramı bilmeyi yeterli kılmakla ilgili olduğunu belirlediğimiz şeye dayanarak, soyutlamanın tam tersinin aslında kullanımın veya anlayışın bir tür uzmanlık bilgisine sahip olduğu ezoterik olduğunu kolayca belirleyebiliriz . öznenin özellikleri.


1

"Dikkat dağıtma" - Bir kod parçası çalıştırıldığında gerçekte ne olduğunun pek çok teğetsel detayının farkında olmadan ne olduğu gibi.


0

Soyutlama abs-trahere'den gelir ve en iyi şekilde "from from draw" olarak tercüme edildiğini söyleyebilirim (her ne kadar gerçek çeviri bu nedenle çekiş olsa da). Bunu bir blog yazısında açıklamaya çalıştım .

Soyutlama işlemidir çizim özünü gelen somut bir şey. Somut şeyler genellikle çok karmaşıktır. Örneğin, görebileceğiniz en yakın sandalyeye bakarsanız, aslında onu oluşturan çok fazla ayrıntı vardır. Malzemesi, yapısı, şekli vb. Ama bunların hiçbiri gerçekten gerekli değil . Önemli olan, üzerine oturabilmenizdir.
Bir şeyin “soyut” u, ona baktığınızda gördüğünüz şeydir. O sandalyeye baktığınızda bir sandalye görüyorsunuz. Bir güreşçi aslında bir silah görebilir.

Yani soyutlamanın sonucu, verilen bir perspektiften bir şeyin özüdür.

Bir bitmap veya metin söz konusu olduğunda, soyutlama, belirli bir değeri belirli bir amacı yerine getiren bir şey olarak düşünmenizdir. Eldeki programlama diline bağlı olarak, düşüncelerinizi dil anlambilimi içinde temsil edebilirsiniz.
Ama sizin için, temeldeki verilerin "ikili" olup olmadığı gerçekten önemli değil. Verileri 13 bit delik delme deseniyle kodlanmış bir rulo kağıttan gerçek zamanlı olarak okunsaydı da işe yarayacaktı. Gerçekten umrunda değil.
Elbette, bellekte depolanan ikili verileri kullanarak somut bir bitmap uygulamasının bazı belirgin avantajları vardır ve çoğu insan bunu tercih edecektir. Yine de, örneğin bitmap bilgilerini gerçekten kodlamanın hala birkaç yolu vardır. Ve birbirlerinin yanında farklı yaklaşımlar kullanmak bile mantıklı olabilir. Ancak, bir dizi kısıtlamaya dayanarak temsili seçen küçük kod parçası dışında, bitmap'in somut doğası hakkında herhangi bir bilgi sahibi olmak istemezsiniz. Sadece bakış açınızdan neyin önemli olduğunu önemsiyorsunuz. Bu örnekte, muhtemelen piksel verilerini işlemek için bir dizi yöntem vardır.

Bir soyutlama aslında her şeyden önce bir fikirdir (ideal bir şey modelinde olduğu gibi), bunun tersi "enkarnasyon" olarak adlandırılabilir. Programlama nadiren cinsel bir şey olduğu için, soyutlamalar genellikle arayüz olarak temsil edilirken, "uygulama" ile devam edilebilir.
@Lior tarafından söylendiği gibi somutlaştırma, asıl hedef yerine (yani bir fikri uygulamak için) araçlara daha fazla odaklanmasına (yani somut bir şey yapmak - elbette kaçınılmaz olan) çok uygun bir kelimedir.


0

Soyutlama, bir şeyi genelleştirmek için özellikleri kaldırma işlemidir. Eğer soyutlama özelliklerin kaldırılması ise, belki de soyutlamanın tersi özelliktir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.