Здрасте, граждане программисты! Недавно столкнулся с понятим "уровень абстракции".Почитал в википедии. Понял так: абстракция это метод программирования, когда программист скрывает от пользователя те процессы, которые происходят в проце при запуске программы.
Если я прав, то зачем было изобретать такой термин? Ведь простому пользователю по идее и не нужно знать все, что творится внутри.
Другие языки программирования и технологии
Что такое Уровень абстракции?
Абстракция - это отличный термин. Собственно, абстрагирование - это процесс выделения из множества наблюдаемых свойств подмножества тех, что важны для решения задачи. Уровень абстракции - условная величина, соответствующая мощности этого подмножества. Чем меньше мощность множества, чем выше абстракция. Самый высокий уровень абстракции у классов типа Object - у них совсем нет свойств.
Дело же не в том, чтобы что-то от кого-то скрыть. Дело в том, чтобы не брать в расчет, например, цвет автомобиля, когда в задаче требуется только рассчитать время, за которое он проедет из пункта А в пункт Б. И наоборот, учитывать его, если речь идет о продаже. Таким образом, один и тот же автомобиль для одной задачи может быть описан как "тойота белого цвета", а в другой просто как "автомобиль".
Или, например, одного и того же молодого человека одна инстанция может рассматривать как лейтенанта запаса, а другая как программиста PHP. Разные уровни абстракции.
Дело же не в том, чтобы что-то от кого-то скрыть. Дело в том, чтобы не брать в расчет, например, цвет автомобиля, когда в задаче требуется только рассчитать время, за которое он проедет из пункта А в пункт Б. И наоборот, учитывать его, если речь идет о продаже. Таким образом, один и тот же автомобиль для одной задачи может быть описан как "тойота белого цвета", а в другой просто как "автомобиль".
Или, например, одного и того же молодого человека одна инстанция может рассматривать как лейтенанта запаса, а другая как программиста PHP. Разные уровни абстракции.
Абстракция в программировании это способ обобщенно решать широкий класс задач или обрабатывать целую категорию данных схожего типа. Например, абстракция аппаратного уровня позволяет обращаться к железу через вспомогательный обобщенный интерфейс не отвлекаясь на детали, отличающиеся у производителей. Т. е. с одной стороны на заводе-производители поставляют драйвера, заточенные под конкретную железяку, но соответствующие API операционной системы. Программисту же отдается интерфейс, условно набор команд, через который он может писать программы для ВСЕХ устройств, соответствующих стандарту. Другой пример, абстракции позволяют формулировать алгоритмы, распространяемые на целые множества типов данных (например, сортировки чисел независимо от того, целочисленные ли они или нет) . Абстракции изучаются в таких разделах математической науки как теория категорий и групп, дискретная математика и т. п. Еще одна прелесть абстракций это возможность найти хороший алгоритм решения задачи, если удается установить соответствие между какими-то моделями или теориями. Например, маршрутизация в интернете, решение задач планирования основаны на соответствии между матрицами и графами.
В win8, например, вместо синего экрана смерти абстрактный грустный смайлик, не сообщающий ничего полезного. До нее был экран с кодами ошибки, который помогал по телефону звонком специалисту, или просто вбив в гугл самостоятельно решить проблему на уровне пользователя - а с win8 теперь только выезд специалиста на точку. Уровень абстракции налицо.
А пользователю самому виднее, нужно ему знать что внутри или нет, и создание "черного ящика" еще к добру не приводило.
А пользователю самому виднее, нужно ему знать что внутри или нет, и создание "черного ящика" еще к добру не приводило.
Уровень абстракции предоставляет способ сокрытия деталей реализации определенного множества функциональных возможностей.
Похожие вопросы
- Абстракция и абстрактные типы данных.
- Что такое абстракции в информатике ?
- ООП: что такое инкапсуляция, абстракция, полиморфизм и наследование?
- как в играх реализован переход между уровнями
- Какой ЯП низкого уровня стоит учить?
- Где бесплатно зарегистрировать домен 2-го уровня?
- Сам не програмист но вот интерисует вопрос. Есть языки програмирования высокого и низкого уровня.
- на каком уровне распаралеливается код????
- Домен первого уровня
- Что сложнее: выучить иностранный язык (уровень понимания разговора) или стать мастером программирования на уровне