Объяснение абстракции не программисту

Абстракция - это концепция, которую трудно объяснить, не обращаясь к использованию терминологии программирования. Я много думал об этом, и я не могу найти удовлетворительный ответ. У кого-нибудь есть какие-то общие, но очень улокальные объяснения?

Метафоры, сравнения и т.д. приветствуются.

Ответ 1

Автомобиль.

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

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

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

Еще один хороший пример - автоматические передачи.

Ответ 2

Абстрактные

Игнорирование деталей того, как что-то работает.

Например, при повороте ключа в автомобиле начинается автомобиль, в котором описываются такие детали, как стартер, аккумулятор, иммобилайзер, бензобак...

Ответ 3

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

Если бы я сказал вам, я дам вам 10 секунд, чтобы что-то нарисовать, тогда, когда я говорю "начните рисовать дом", вы вряд ли придумаете что-то, отличное от моего рисунка:

 /\
/  \
|  |
 --

Потому что ваш мозг абстрагировал самые улокальные детали о вашем доме: крышу, стены - и если бы у вас было время - двери, окна.

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

Ответ 4

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

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

Или вы могли бы приготовить рецепт для пиццы, для чего требуется тесто и топпинг. Это абстрактный рецепт.

Затем вы можете выбрать тесто из белой муки, воды, сахара, соли, оливкового масла и дрожжей.

Вы также можете сделать помидоры из помидоров, сыра моцарелла, базилика и оливкового масла с оливковым маслом.

Но вы также можете использовать другие начинки (например, пепперони и чили) и другие виды теста (например, муку из муки из муки или кукурузную муку).

Ответ 5

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

Ответ 6

Если вы имеете в виду абстракцию, подобную библиотеке/фреймворкам:

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

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

Ответ 7

Я бы сказал, абстракция - это обобщение сложных понятий на относительно простые, с акцентом на то, какие части понятия важны в контексте.

Ответ 8

Я предлагаю, чтобы Abstraction уделяла внимание деталям, которые актуальны и игнорируют остальных.

Скажите, что вы хотите нанять шеф-повара.

Вы хотите обратить внимание на

  • Обучение
  • Какую пищу можно приготовить/приготовить
  • Насколько хорошо представление о еде
  • Как он будет взаимодействовать с остальной частью команды.
  • Насколько хорошо приготовленная еда

Но вам не нужно обращать внимание на

  • Цвет волос
  • Татуировки
  • Как хорошо он может рисовать
  • Носовые волосы
  • Пирсинг его/ее подруги

И так далее.

Ответ 9

Почему бы просто не "жилища".

Как и в "24a Posh Towers", это "четырехспальный пентхаус-пентхаус в доках" - это "лондонская квартира" - это "дом" - это жилье.

"Синяя палатка рядом с эфиопской вегатарской пищевой палаткой" - это "моя палатка в гластонбери", является "временным домом" и также является "жилым"

Ответ 10

абстракция - это понятие или идея, не связанная с каким-либо конкретным экземпляром

Ответ 11

Numerals.

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

Цитата Алиса в Стране Чудес, Льюис Кэролл:

    "[doormice that were drawing everything that begins with an M, 
such as mousetraps, and the moon and memory, and muchness — [..]
 did you ever see such a thing as a drawing of a muchness ?"

Ответ 12

Автомобиль слишком продвинут для меня. Как насчет корзины покупок? Вы нажимаете, он перемещается.