Что является противоположностью абстракции? [закрыто]


19

Насколько я понимаю, абстракция - это термин, который мы используем, когда большее значение создается из чего-то более простого, не меняя его. Это происходит от латинского глагола abstrahere («отвести»). Например, текст - это всего лишь одна абстракция двоичных данных, как и растровые изображения. Таким образом, в компьютерах текст и растровые изображения существуют поверх (реализуются в терминах) двоичных данных.

Мой вопрос: что такое противоположный термин? Если я хочу узнать о возможных более простых вещах, которые могут быть реализованы растровыми изображениями в терминах, отличных от двоичных данных - таких, как мозаика для мозаики или лоскутки ткани для лоскутного одеяла - что я спрашиваю? Есть ли слово для этого?

Абстракция имеет коннотации обобщения и противоположный процесс специализации. ИДК, помогает ли это.


7
Это может быть лучше подходит для English.SE.
Петер Тёрёк

3
В некоторых случаях простота. Я видел множество ужасных абстракций, которые только усложняли ситуацию; |
Уильям

Я думаю, что это понятие не имеет удовлетворительного слова. Позволяет монете один так: "де-абстракция"
Конор Коснет

Ответы:


8

Реализация.

Абстракция - это короткие слова, умственный процесс получения (уменьшенной) модели вещи реального мира, «компактный» в концепцию или идею.

Так что наоборот - взять концепцию или идею и превратить их в реальность ;-)


2
Я не знаю, буду ли я так часто называть это противоположностью, а не дополнительным понятием. Например, каждый раз, когда у вас есть абстракция в программировании, у вас также есть реализация, которую абстракция скрывает. Тем не менее, кажется, что это вопрос, который задают.
Джоккинг

@jhocking Тормоза и акселератор автомобиля противоположны, но также дополняют друг друга. Приветствия.
umlcat

«проявление» эфирной абстракции от платоновского царства к (простой) физической реальности
Конор Коснет

41

Обычно

Конкретизация - Как в C ++ Конкретный класс

и в некоторых случаях:

Специализация - Как в C ++ Шаблонная специализация

Добавлено 12 июня 2012 : Это прекрасный термин:

Reification - как в нескольких языках программирования


6
Хотя я не согласен с использованием «конкретизации» - это немного громоздкое слово… не лучше ли «конкретизация»? thefreedictionary.com/concretion
HorusKol

1
Конкретность точно.
Захари Йейтс

После бетонирования он установлен в бетоне? Просто спрашиваю :-)
JensG


4

«Бетон» является противоположностью «абстрактного», поэтому противоположностью «абстракции» является логически «конкретизация». Однако в этом нет ничего значительного, поскольку вы, как правило, говорите только об абстракции и редко думаете об ее противоположности.


3

Давайте начнем с нуля. Прежде всего, что такое абстракция?

Проблема / Мотив

Когда вы программируете, вам часто приходится решать очень детализированные задачи.

Основной мотив абстракции - это когда вы можете оказаться в ситуации, когда ваша программа обрабатывает всю проблему как единое целое, со множеством отдельных мелких особенностей, требующих внимания и понимания. Проблема здесь в том, что людям трудно обрабатывать такие огромные объемы данных одновременно.

Решение: абстракция

Чтобы вы могли понять, что вам нужно для реализации своей идеи , вы извлекаете подробные решения в упрощенные абстракции .

Например, давайте посмотрим на ORM (объектно-реляционное отображение), где SQL абстрагируется в объекты.

Чтобы вставить новый элемент в базу данных без абстракций, программист должен знать SQL. Таким образом, чтобы вставить новый элемент, программист должен запомнить синтаксис SQL для вставки нового элемента в таблицу:

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

Но с абстракциями, программист должен знать только о том, что он хочет делать. Объектно-ориентированная абстракция может выглядеть так:

Item item = new Item(value1, value2)

Вы можете даже пойти немного дальше и подумать о том факте, что SQL сам по себе является огромной абстракцией для множества сложных структур и алгоритмов хранения данных, которые полностью в ваших руках по цене изучения простого декларативного языка.


Противоположность абстракции

Основываясь на том, что мы сейчас определили, что абстракция на самом деле сводится к тому, чтобы сделать ее достаточной только для того, чтобы знать наиболее существенную концепцию, имеющуюся под рукой, мы можем легко сделать вывод, что противоположность абстракции на самом деле является эзотерикой , где использование или понимание влечет за собой наличие своего рода специализированных знаний о особенности предмета.


1

«Отвлечение» - как в том, что происходит, когда фрагмент кода не может быть понят без знания многих касательных деталей того, что на самом деле происходит, когда он выполняется.


0

Абстракция действительно происходит из абс-трахера, и я бы сказал, что ее лучше всего переводить как «черпать из» (хотя буквальный перевод, таким образом, был бы отвлечением). Я пытался объяснить это в своем блоге .

Абстракция - это процесс извлечения сущности из чего-то конкретного. Конкретные вещи обычно чрезвычайно сложны. Например, если вы посмотрите на ближайший стул, который вы можете увидеть, есть много деталей, которые на самом деле составляют его. Его материал, его структура, его форма и так далее. Но ни одна из этих вещей на самом деле не является существенной . Важно то, что вы можете сидеть на нем.
Ваш "абстрактный" чего-то является то, что вы видите, когда вы смотрите на это. Когда вы смотрите на этот стул, вы видите стул. Вместо этого борец может увидеть оружие.

Таким образом, результат абстракции действительно является сущностью чего-либо с данной точки зрения.

В случае растрового изображения или текста абстракция заключается в том, что вы думаете о данном значении как о чем-то, выполняющем определенную цель. В зависимости от имеющегося языка программирования вы можете представлять свое мышление в языковой семантике.
Но для вас не имеет значения, являются ли базовые данные «двоичными». Это сработало бы так же хорошо, если бы оно было считано в режиме реального времени с рулонной бумаги, на которой есть данные, закодированные с помощью 13-битной схемы перфорации. Тебя это не волнует.
Конечно, реализация конкретного растрового изображения с использованием двоичных данных, хранящихся в памяти, имеет некоторые очевидные преимущества, и большинство людей предпочтут это. Тем не менее, есть еще ряд способов, например, кодировать растровую информацию. И может даже иметь смысл использовать разные подходы рядом друг с другом. Но за исключением небольшого фрагмента кода, который выбирает представление на основе ряда ограничений, вы не хотите иметь никаких знаний о конкретной природе растрового изображения. Вы заботитесь только о том, что важно с вашей точки зрения. В этом примере это, вероятно, несколько методов для манипулирования данными пикселей.

Поскольку абстракция на самом деле является прежде всего идеей (как в идеальной модели чего-либо), противоположное можно назвать «воплощением». Поскольку программирование редко бывает плотским делом, можно использовать «реализацию», в то время как абстракции часто представляются в виде интерфейсов.
Конкретизация, как сказал @Lior, также является очень подходящим словом, даже если она больше фокусируется на средствах (то есть на рендеринге чего-то конкретного - что, конечно, неизбежно), а не на реальной цели (т. Е. Для реализации идеи).


0

Абстракция - это процесс удаления специфики для обобщения чего-либо. Если абстракция - это удаление специфики, то, возможно, противоположностью абстракции является спецификация.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.