Co jest przeciwieństwem abstrakcji? [Zamknięte]


19

Jak rozumiem, abstrakcja jest terminem, którego używamy, gdy więcej znaczenia powstaje z czegoś prostszego bez zmiany. Wywodzi się od łacińskiego czasownika abstrahere („odciągnąć”). Na przykład tekst to tylko jedna abstrakcja danych binarnych - podobnie jak bitmapy. Tak więc w komputerach tekst i bitmapy istnieją na (binarnie) danych binarnych.

Moje pytanie brzmi: jaki jest przeciwny termin? Jeśli chcę poznać możliwe bardziej podstawowe rzeczy, które bitmapy mogłyby zostać zaimplementowane w odniesieniu do danych innych niż binarne - takie jak kafelki mozaiki lub łaty tkanin do kołdry patchworkowej - o co proszę? Czy jest na to jakieś słowo?

Abstrakcja ma konotacje uogólnienia, a odwrotnym procesem jest specjalizacja. IDK, czy to pomaga.


7
Może to lepiej pasować do English.SE.
Péter Török,

3
W niektórych przypadkach prostota. Widziałem wiele okropnych abstrakcji, które tylko skomplikowały sprawy;
William,

Myślę, że ta koncepcja nie ma zadowalającego słowa. Pozwala to na
wybranie

Odpowiedzi:


8

Realizacja.

Abstrakcja jest krótkimi słowami, jest mentalnym procesem uzyskiwania (zredukowanego) modelu rzeczy ze świata rzeczywistego i „kompaktowania” w koncepcję lub pomysł.

Przeciwnie jest wziąć pomysł lub pomysł i przekształcić go w rzeczywistość ;-)


2
Nie wiem, czy nazwałbym to tak bardzo przeciwieństwem, jak koncepcją komplementarną. Jak w każdym przypadku, gdy masz abstrakcję w programowaniu, masz również implementację, którą ukrywa abstrakcja. Wydaje się jednak, że o to właśnie chodzi.
jhocking

@jhocking Hamulce i przyspieszenie samochodu są przeciwieństwami, ale również się uzupełniają. Twoje zdrowie.
umlcat

„manifestacja” eterycznej abstrakcji z sfery platońskiej do (zwykłej) rzeczywistości fizycznej
Conor Cosnett

41

Zazwyczaj

Konkretyzacja - jak w klasie betonu C ++

aw niektórych przypadkach:

Specjalizacja - jak w specjalizacji szablonów C ++

Dodano 12-czerwca-2012 : To piękny termin:

Reification - jak w kilku językach programowania


6
Chociaż nie zgadzam się z użyciem „konkretyzacji” - to trochę kłopotliwe słowo… czy „konkrecja” nie byłaby lepsza? thefreedictionary.com/concretion
HorusKol

1
Z pewnością konkrecja .
Zachary Yates

Czy jest zatem konkretny po konkrecji? Tylko pytam :-)
JensG


4

„Beton” jest przeciwieństwem „abstrakcji”, więc przeciwieństwo „abstrakcji” jest logicznie „konkretyzacją”. Nie ma to jednak dokładnie znaczącego przeciwieństwa, ponieważ na ogół mówisz tylko o abstrakcji i rzadko myślisz o tym, że jest odwrotnie.


3

Zacznijmy od zera. Po pierwsze, czym tak naprawdę jest abstrakcja?

Problem / motyw

Podczas programowania często musisz rozwiązywać bardzo szczegółowe problemy.

Podstawowym motywem abstrakcji jest sytuacja, w której program traktuje cały problem jako jedną całość, z wieloma dyskretnymi drobiazgami, które wymagają uwagi i zrozumienia. Problem polega na tym, że ludziom trudno jest przetwarzać tak ogromne ilości danych na raz.

Rozwiązanie: abstrakcja

Abyś mógł zrozumieć, czego potrzebujesz, aby zrealizować swój pomysł , wyodrębniasz szczegółowe rozwiązania w uproszczonych abstrakcjach .

Na przykład spójrzmy na ORM (Object-Relational Mapping), w którym SQL jest abstrakcyjny na obiekty.

Aby wstawić nowy element do bazy danych bez abstrakcji, programista musi znać SQL. Aby wstawić nowy element, programista musi zapamiętać składnię SQL do wstawiania nowego elementu do tabeli:

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

Ale z abstrakcji, tylko programista musi zdawać sobie sprawę z idei tego, co chce zrobić. Abstrakcja obiektowa może wyglądać następująco:

Item item = new Item(value1, value2)

Możesz nawet pójść nieco dalej i pomyśleć o tym, że sam SQL jest ogromną abstrakcją dla mnóstwa wyrafinowanych struktur i algorytmów przechowywania danych, które są w pełni na wyciągnięcie ręki w cenie nauki prostego języka deklaratywnego.


Przeciwieństwo abstrakcji

W oparciu o to, co zdefiniowaliśmy teraz, że abstrakcja naprawdę polega na tym, aby wystarczająca była tylko znajomość kwintesencji koncepcji, możemy łatwo wywnioskować, że przeciwieństwem abstrakcji jest w rzeczywistości ezoteryka , w której użycie lub zrozumienie wymaga posiadania pewnego rodzaju specjalistycznej wiedzy na temat osobliwości podmiotu.


1

„Rozproszenie uwagi” - tak jak dzieje się, gdy fragment kodu nie może być zrozumiany bez wiedzy o wielu stycznych szczegółach tego, co faktycznie dzieje się po uruchomieniu.


0

Abstrakcja pochodzi z abs-trahere i powiedziałbym, że najlepiej ją tłumaczyć jako „czerpać z” (chociaż dosłowne tłumaczenie byłoby w ten sposób pozbawione trakcji). Próbowałem to wyjaśnić w poście na blogu .

Abstrakcja to proces wyciągania esencji z czegoś konkretnego. Konkretne rzeczy są zwykle niezwykle złożone. Na przykład, jeśli spojrzysz na najbliższe krzesło, które widzisz, jest wiele szczegółów, które faktycznie je tworzą. Jego materiał, struktura, kształt i tak dalej. Ale żadna z tych rzeczy nie jest tak naprawdę niezbędna . Najważniejsze jest, abyś mógł na nim usiąść.
Twój „abstrakt” czegoś jest tym , co widzisz, kiedy na to patrzysz. Kiedy patrzysz na to krzesło, widzisz krzesło. Zapaśnik może zamiast tego zobaczyć broń.

Wynik abstrakcji jest więc istotą czegoś z danej perspektywy.

W przypadku bitmapy lub tekstu abstrakcja polega na tym, że myślisz o danej wartości jako o czymś, co spełnia określony cel. W zależności od używanego języka programowania możesz reprezentować swoje myślenie w ramach semantyki języka.
Ale dla ciebie tak naprawdę nie ma znaczenia, czy podstawowe dane są „binarne”. Równie dobrze działałoby, gdyby odczytano go w czasie rzeczywistym z rolki papieru, który ma dane zakodowane 13-bitowym wzorem dziurkowania. Nie obchodzi cię to.
Oczywiście implementacja konkretnej mapy bitowej przy użyciu danych binarnych przechowywanych w pamięci ma pewne oczywiste zalety i większość ludzi woli to. Jednak wciąż istnieje wiele sposobów kodowania informacji bitmapowych. I może nawet mieć sens stosowanie różnych podejść obok siebie. Ale z wyjątkiem małego fragmentu kodu, który wybiera reprezentację na podstawie wielu ograniczeń, nie chcesz mieć żadnej wiedzy na temat konkretnej natury bitmapy. Dbasz tylko o to, co jest istotne z twojej perspektywy. W tym przykładzie jest to prawdopodobnie szereg metod manipulowania danymi pikseli.

Ponieważ abstrakcja jest tak naprawdę przede wszystkim ideą (jak w idealnym modelu czegoś), przeciwieństwo można nazwać „wcieleniem”. Ponieważ programowanie rzadko jest cielesne, można przejść do „implementacji”, podczas gdy abstrakcje są często przedstawiane jako interfejsy.
Konkretizacja, jak mówi @Lior, jest również bardzo odpowiednim słowem, chociaż koncentruje się bardziej na środkach (tj. Renderowaniu czegoś konkretnego - co oczywiście jest nieuniknione), a nie na rzeczywistym celu (tj. Wdrażaniu pomysłu).


0

Abstrakcja to proces usuwania specyfików, aby coś uogólnić. Jeśli abstrakcja jest usunięciem specyfiki, być może przeciwieństwem abstrakcji jest specyfikacja.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.