Объяснение абстракции не программисту
Абстракция - это концепция, которую трудно объяснить, не обращаясь к использованию терминологии программирования. Я много думал об этом, и я не могу найти удовлетворительный ответ. У кого-нибудь есть какие-то общие, но очень улокальные объяснения?
Метафоры, сравнения и т.д. приветствуются.
Ответы
Ответ 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
Автомобиль слишком продвинут для меня. Как насчет корзины покупок? Вы нажимаете, он перемещается.