Автомобиль.
Вы взаимодействуете с автомобилем через абстракции - педаль газа, руль, которые используются для того, чтобы скрыть сложность автомобиля.
Вы используете абстракцию педали газа для управления скоростью двигателя, вам не нужно вручную впрыскивать газ в двигатель и управлять поршнями.
Рулевое колесо - это еще одна абстракция. Вы поворачиваете руль, и он поворачивает сразу оба передних колеса, что значительно упрощает вашу задачу как водителя. Вы можете заменить базовую реализацию на другую, сохранив при этом интерфейс (например, в новых автомобилях есть усилитель руля).
Другим хорошим примером являются автоматические коробки передач.
Абстракция может означать написание правил (или процедур), которые могут быть применены к более широкому набору обстоятельств.
Вы можете написать рецепт пиццы "Маргерита", для которого требуются: помидоры, сыр моцарелла, белая мука, вода, базилик, сахар, соль, оливковое масло экстра вирджин и дрожжи.
Или вы можете составить рецепт пиццы, для которого требуется тесто и начинка. Это абстрактный рецепт.
Вы можете сделать тесто из белой муки, воды, сахара, соли, оливкового масла extra virgin и дрожжей.
Вы также можете сделать начинку из помидоров, сыра моцарелла, базилика и оливкового масла.
Но вы также можете использовать другие начинки (например, пепперони и чили) и другие виды теста (например, из цельнозерновой муки или кукурузной муки).
Почему бы просто не сделать "жилища".
Например, "24a Posh Towers" - это "пентхаус с четырьмя спальнями в Доклендсе" - это "лондонская квартира" - это "дом" - это жилище.
"Синяя палатка рядом с палаткой с этиопской вегатарианской едой" - это "моя палатка в Гластонбери" - это "временный дом", а также "жилище"
.Я бы сказал, абстракция - это обобщение сложных концепций в относительно простые, с акцентом на то, какие части концепции важны в данном контексте.
Цифры.
Что общего между тремя коровами, тремя стульями и тремя вишневыми деревьями? В чем проблема, что у них общего? Вы не можете его нарисовать, и даже объяснить концепцию сложно, но это все же полезная концепция.
Цитата «Алиса в стране чудес» Льюиса Кэролла:
"[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 ?"
абстракция - это концепция или идея, не связанная с каким-либо конкретным экземпляром
Автомобиль слишком продвинутый для меня. Как насчет корзины покупок? Вы толкаете, он движется.
Я предлагаю абстракцию обращать внимание на важные детали и игнорировать все остальное.
Допустим, вы хотите нанять повара.
Вы действительно хотите обратить внимание на
Но вам не нужно обращать внимание на
И так далее.
Игнорирование деталей того, как что-то работает.
например, поворот ключа в автомобиле заводит машину, при этом абстрагируются такие детали, как мотор стартера, аккумулятор, иммобилайзер, бензобак...
Большинство людей проводят весь день, абстрагируясь от важных деталей сложных вещей, поэтому я не думаю, что найти пример слишком сложно.
Если я скажу вам, что дам вам 10 секунд, чтобы нарисовать что-нибудь, то когда я скажу: "Начинай! Нарисуй дом", вы вряд ли придумаете что-то отличное от моего рисунка:
/\
/ \
| |
--
Потому что ваш мозг абстрагировал самые важные детали вашего дома: крышу, стены - и если у вас было время - двери, окна.
Мы абстрагируем детали от всего просто потому, что это облегчает понимание. Мы не изучаем все мельчайшие детали конструкции стула - мы просто идем в Икею и покупаем тот, который хорошо выглядит. Есть много хороших примеров.
Если вы имеете в виду абстракцию, как она обеспечивается библиотеками/фреймворками:
Использование программного слоя, который абстрагирует что-то, можно рассматривать как наем кого-то, кто делает за вас работу, которую вы не можете или не хотите делать сами.
Абстрагирование вещей в типичные программные структуры, такие как классы и объекты, объяснить немного сложнее...