Абстракция это что: Абстракция это

Примеры абстракций в технике и повседневности / Хабр

Поговорим про абстракциях. Что вообще это за слово такое абстракция?

Абстракция  (отвлечение) про­цесс от­вле­че­ния (абстрагирования) от тех или иных ха­рак­те­ри­стик объекта для их из­би­ра­тель­но­го анализа; при этом на­блю­дае­мый объ­ект за­ме­ща­ет­ся его идеализированным тео­ре­тическим об­ра­зом — аб­стракт­ным объектом. Абстракции являются уни­вер­саль­ным методом на­учного по­зна­ния, они необходимы для фор­ми­ро­ва­ния по­ня­тий, уз­на­ва­ния и клас­си­фи­ка­ции объ­ек­тов исследования на всех уров­нях фор­ми­ро­ва­ния зна­ний.

Синонимами можно считать такие слова как отвлеченный, умозрительный, теоретический. Абстракция это модель, теория.

Противоположное слово это конкретный, фактический.

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

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

Абстракции в разработке программного обеспечения

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

Виртуальная память это абстракция от физических адресов. Виртуальная машина это абстрагирования от реальной физической машины (будь то телефон, DeskTop, Server). Любой язык программирования это способ отвлечения от безумно сложных и скучных машинных кодов. В каждой программе есть абстрактные структуры данных такие как бинарные деревья, очереди, стеки, циклические массивы, графы, косые деревья, хеш-таблицы. Файл как и файловые системы преобразуют нули и единицы в удобные текстовые файлики. Алгоритмы компрессии данных это способ отвлечения от реального размера файла. Операционная система это способ отвлечения от конкретного оборудования. POSIX (Portable Operating System Interface) это пример полезного абстрагирования от реализации функций операционных систем. Благодаря POSIX у разных операционных систем появилась совместимость на уровне исходного кода. Иконки на рабочем столе — тоже самое. Гипервизоры нужны чтобы не обращать внимания на то как меняются операционные системы. Байт-код это отвлечение от целевой платформы для которой собрана программа. Язык Python абстрагируется от типов данных. Модель OSI-7 это условное представление того через какие слои проходят данные в интернете. Физический, канальный, сетевой, транспортный, представления, сеансовый, прикладной. DNS адреса удобнее запоминать чем сырые IP адреса. Любое прикладное ПО с GUI это чистейшей воды абстракция. Прикладное ПО (например программа для трассировки печатных плат) это умозрительная концепция, коротая решает конкретную задачу реализованная на основе интерфейсов, которые предоставляет операционная система.

В общем абстракции очень полезны в программировании. Для разработки софтвера надо обязательно обладать развитым абстрактным мышлением.

Абстракции в аппаратном обеспечении

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

Вот например автоматическая коробка передач абстрагируется от реальной геометрии переключения положения шестерен очень полезная абстракция воплощенная в железе.  Или драйвер шагового двигателя это способ абстрагироваться от того как на самом деле осуществляется управления вращением вала шагового мотора. Затем появилась цифровая схемотехника, чтобы не вникать в реализацию логических элементов. Далее сформировался язык Verilog абстрагируется от схемотехники цифровых цепей и описывает цифровую схему просто как текст. Схемы конечный автоматов это пример отвлечения от физического расположения микросхем триггеров на электронной плате. Принстонская/Гарвардская архитектура микропроцессора это умозрительная модель понимания структуры всего компьютера.

Вот в схеме топологии печатной платы нет абсолютно никакой абстракции. Топология PCB она максимально конкретная. Поэтому и анализировать топологию всегда трудно. Многое отвлекает.

https://habr.com/ru/articles/655879/

Поэтому люди придумали схемы электрические принципиальные. Схемотехника это абстракция от топологии. Однако и схемотехника современных электронных устройств тоже достигла высокого уровня сложности. Схемотехника в 40…100 страниц это уже вообще сегодня норма жизни. Поэтому люди придумали блок-схемы электронных плат. Блок-схема это абстракция от схемотехники, которая работает на 2м уровне. Потом делают схемы топологии сети. Это уже, как минимум, 3тий уровень абстракции. 

https://habr.com/ru/articles/667030/

Проследите цепочку получившихся уровней:  Физика > Полупроводниковые приборы > аналоговые схемы > цифровые схемы > логические элементы > АЛУ > процессор > SoC > PCB > OS(системное ПО) > Прикладное ПО. Минимум 11 умозрительных уровней!

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

Вероятно абстракции появились как побочный эффект познания мироустройства в науке. Например закон всемирного тяготения это абстракция. Реальные силы значительно труднее в понимании и объяснении. Это доказывают опыты наблюдения смещения перигелия Меркурия. https://ru.wikipedia.org/wiki/Смещение_перигелия_Меркурия

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

В эпоху Великих Географический Открытий появилась ценность географических карт. Географическая карта это тоже абстракция от реальной формы земной поверхности и береговой линии. Там реки указывают плавной линией хотя на самом деле они извиваются как змеи и через каждые 100—200 метров поворот.

Абстракции мы всегда видим в повседневности. Деньги это вообще абстракция от вида трудовой деятельности. Будь то труд каменщика или труд пекаря. 

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

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

А оut source компании это пресловутый способ абстрагирования от найма как такового и социальных противоречий связанных с этим для продуктовых компаний.
https://habr.com/ru/articles/720464/

У абстракций есть недостатки?

Да, конечно. Уровни абстракции отбирают у системы некоторые ресурсы. Java код исполняется медленнее чем С код. Артефакты Java компилятора занимают больше места на диске, чем артефакты от C компилятора. Системные вызовы от приложений обрабатываются на уровне операционной системы и требуют времени. Это плата за упрощение понимания и переносимость программ. На каждом уровне абстракции время течет медленнее. То что в прикладном ПО одна строчка кода, то в коде на физическом уровне целая эпоха.

В чем достоинства абстракций?

1—Они помогают понять сложные вещи. Абстракции делают возможным применение формальных методов, и алгоритмов, т.е. в конечном счете логики. (модель атома Бора, абстрактные структуры данных в программировании, закон всемирного тяготения, математический маятник, идеальный газ, материальная точка)

2—Они уменьшают время понимания сложных вещей (схема метро, электрические принципиальные схемы)

3—Они позволяют масштабировать сложность, декомпозировать трудные задачи. (автоматическая коробка передач, драйвер шагового двигателя, алгоритмы компрессии данных).

4—Они помогают переносить объекты на другую систему координат (Языки программирования Java, гипервизоры, Doсker контейнеры)

5—Они заменяют сложное на простое (языки программирования, файловые системы, DNS адреса, иконки на рабочем столе, программы с GUI).

6—Они помогают уйти от ответственности (out source компании, модель OSI-7)

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

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

Как научиться абстрактному мышлению раз это так полезно? Как научиться придумывать полезные абстракции?

У меня нет четкого ответа на этот вопрос. Наверно надо пробовать. Далее эксперименты покажут какие абстракции жизнеспособны, а какие нет. Это как в физике. Была модель атома Томсона и модель атома Бора. В результате экспериментов выяснилось, что модель атома Бора оказалась более пригодной к реальности. Многие языки программирования тоже канули в лету. Где сейчас Паскаль, Fortran или Бэйсик? Тут как с языками программирования. Некоторые абстракции будут существовать до поры до времени пока их не заменят более эффективные простые абстракции. И это нормально.

Вывод

У природы же видимо нет абстракций. В природе всё максимально конкретно. Абстрагирование это чисто человеческое свойство. Это люди придумывают абстракции и уровни абстракций для себе подобных. Это и понятно. Смысл абстракции это уменьшение сложности, увеличения скорости понимания, объяснение сути чего-либо, будь-то карта материка или электронная плата. 

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

Известные мне примеры умозрительных понятий я перечислит тут https://docs.google.com/spreadsheets/d/1JxEuo7bxo2A7J5qksBxekWf3FJVuDCJbXaZKx9IvDnU/edit#gid=0

Если вам известны примеры красивых абстракций в технике или в повседневной жизни, то напишете про это, пожалуйста, в комментариях.

https://habr.com/ru/companies/tiktokcoach/articles/206994/

https://habr.com/ru/companies/skillfactory/articles/508716/

Абстракция (Юнг) | Понятия и категории

Абстракция — как на то указывает само слово — есть извлечение или отвлечение какого-нибудь содержания (какого-нибудь значения, общего признака и т.д.) из связного контекста, содержащего еще и другие элементы, комбинация которых, как нечто целое, является чем-то неповторимым или индивидуальным и потому не поддающимся сравнению. Единоразность, своеобразие и несравнимость мешают познанию; следовательно, другие элементы, ассоциируемые с каким-то содержанием, воспринятым в качестве существенного, будут рассматриваться как иррелевантные, “не относящиеся к делу”.

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

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

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

чувственному (см. ), а абстрактную интуицию — как интуицию символическую в противоположность фантастической интуиции (см. фантазия и интуиция).

В данной работе я связываю понятие абстракции с рассмотрением связанного с ним психоэнергетического процесса. Принимая по отношению к объекту абстрагирующую установку, я не позволяю объекту, как целому, воздействовать на меня; я концентрирую внимание на одной его части, исключая все прочие иррелевантные. Моя задача состоит в том, чтобы освободиться от объекта как единого и неповторимого целого и извлечь лишь одну из частей этого целого. Хотя осознание целого мне и дано, я тем не менее не углубляюсь в это осознание, поскольку мой интерес не вливается в целое, как таковое, а отступает от него, прихватывая с собой выделенную из него часть и доставляя ее в мир моих понятий, мир, который уже готов или сконстеллирован для абстрагирования данной части объекта. (Я не могу абстрагироваться от объекта иначе, как при помощи субъективного установления понятий).

“Интерес” я понимаю как энергию или либидо (см.), которой я наделяю объект как ценностью, или же которую объект привлекает к себе против моей воли или помимо моего сознания. Поэтому я представляю себе процесс абстракции наглядно, как отвлечение либидо от объекта, как утекание ценности от объекта в субъективное абстрактное содержание. Для меня поэтому абстракция сводится к энергетическому обесцениванию объекта. Другими словами, абстракция есть интровертирующее движение либидо, (см. интроверсия).

Я называю установку (см.) абстрагирующей тогда, когда она, с одной стороны, имеет интровертный характер, а с другой —

ассимилирует часть объекта, воспринятую в качестве существенной, абстрактными содержаниями, имеющимися в распоряжении субъекта. Чем абстрактнее содержание, тем более оно непредставимо. Я примыкаю к кантовскому пониманию, согласно которому понятие тем абстрактнее, чем “больше в нем опущено отличий, присущих вещам” в том смысле, что абстракция на ее высшей ступени абсолютно удаляется от объекта и, тем самым, достигает полнейшей непредставимости, такую абстракцию я называю идеей (см. ). Напротив, абстракция, которая обладает еще представимостью или созерцаемостью, является конкретным (см.) понятием.

Цитируется оп изд.: Юнг К. Психологические типы. СПб, М., 1995, с. 498-500.

Tags: 

Психология

Понятие: 

Абстракция

Что такое абстракция в компьютерных науках?

Что такое абстракция в информатике? Абстракция — это волшебное искусство упрощения самых сложных компьютерных систем, раскрытия их мощи и секретов. Это как найти спрятанное сокровище, отфильтровав ненужные детали и сосредоточившись на самом важном. Другими словами, абстракция — это процесс создания вида системы с высоты птичьего полета, позволяющий программистам разбить ее на более мелкие, более управляемые части.

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

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

Что означает абстракция?

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

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

Что такое абстракция в информатике: Абстракция — ключевой принцип объектно-ориентированного программирования, позволяющий программистам создавать высокоуровневые представления сложных систем

Что такое абстракция в информатике?

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

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


Управление данными 101: Создание прочного фундамента для вашей организации


Абстракция данных

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

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

Абстракция управления

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

Например, многие языки программирования предоставляют управляющие структуры более высокого уровня (такие как циклы foreach и операторы switch), которые позволяют разработчикам писать более лаконичный и выразительный код. Эти управляющие структуры скрывают детали реализации цикла или условного оператора, облегчая разработчикам возможность сосредоточиться на высокоуровневой логике своих программ.

Процедурная абстракция

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

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

Что такое абстракция в компьютерных науках: Абстракция включает в себя идентификацию основных характеристик системы, игнорируя несущественные или несущественные детали

Понимание абстракции в компьютерной архитектуре

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

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

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

Уровни абстракции в информатике

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

  • Оборудование: Этот уровень включает физические компоненты компьютерной системы, такие как ЦП, память и устройства ввода-вывода.
  • Операционная система: Этот уровень включает программное обеспечение, которое управляет аппаратными ресурсами компьютерной системы, такими как ядро, драйверы устройств и системные библиотеки.
  • Язык программирования: Этот уровень включает в себя синтаксис и семантику определенного языка программирования, которые используются для написания программных приложений.
  • Приложение: Этот уровень включает программные приложения, созданные с использованием языков программирования и работающие поверх операционной системы.

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

Домен программного обеспечения

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

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

Цифровой домен

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

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

Аналоговый домен

Аналоговый домен относится к области информатики, которая сосредоточена на аналоговой электронике и аналоговых системах. Сюда входят аналоговые схемы, аналоговая обработка сигналов и аналоговые системы связи.

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

Что такое абстракция в информатике: Абстракция используется для создания модульного, эффективного и удобного в сопровождении кода, что позволяет программистам разрабатывать инновационные решения и исследовать новые идеи

Связь абстракции и инкапсуляции в информатике

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

Абстракция

Абстракция — это процесс определения существенных характеристик объекта или системы при игнорировании второстепенных или несущественных деталей. В контексте объектно-ориентированного программирования абстракция достигается путем определения абстрактных классов и интерфейсов, которые обеспечивают высокоуровневое представление системы или объекта без указания деталей того, как это работает.

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

Например, рассмотрим программу, имитирующую зоопарк. Программа может определить абстрактный класс под названием «Животное», который обеспечивает высокоуровневое представление о том, что такое животное, без указания деталей каждого отдельного животного. Класс Animal может определять такие методы, как «есть», «спать» и «двигаться», которые являются общими для всех животных. Конкретные классы, такие как «Лев» и «Слон», затем могут быть производными от класса Animal, и они могут реализовывать методы по-своему.


Микрокомпьютеры: чудеса современной технологии в миниатюре


Инкапсуляция

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

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

Например, рассмотрим программу, моделирующую банковский счет. Программа может определить класс под названием «Учетная запись», который имеет закрытые данные-члены, такие как «баланс» и «номер_счета». Класс Account может также определять общедоступные методы, такие как «депозит» и «снятие», которые можно использовать для управления балансом учетной записи. Другие объекты или системы могут взаимодействовать с классом Account, вызывая его общедоступные методы, но они не могут напрямую обращаться к закрытым элементам данных или изменять их.

Абстракция и инкапсуляция

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

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

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

Абстракция Корпус
Определение Процесс определения существенных характеристик объекта или системы при игнорировании несущественных или несущественных деталей. Процесс сокрытия сведений о реализации объекта или системы при раскрытии общедоступного интерфейса, который может использоваться другими объектами или системами.
Назначение Чтобы упростить сложные системы, разбив их на более мелкие и более управляемые компоненты. Для защиты внутреннего состояния объекта или системы и предотвращения прямого доступа или изменения этого состояния другими объектами или системами.
Выполнено Определение абстрактных классов и интерфейсов, обеспечивающих высокоуровневое представление системы или объекта без указания деталей того, как это работает. Определение классов с закрытыми элементами данных и общедоступными методами, которые работают с этими элементами данных.
Преимущества Создает модульный, повторно используемый и поддерживаемый код. Обеспечивает целостность системы и упрощает изменение или обновление системы в будущем.
Пример Определение абстрактного класса под названием «Животное», который обеспечивает высокоуровневое представление о том, что такое животное, без указания сведений о каждом отдельном животном. Определение класса под названием «Учетная запись», который имеет закрытые члены данных, такие как «баланс» и «номер счета», и общедоступные методы, такие как «депозит» и «вывод средств».
Что такое абстракция в компьютерных науках: Абстракция — это фундаментальная концепция разработки программного обеспечения, предоставляющая строительные блоки для создания элегантных и мощных систем, которые можно использовать в различных контекстах  

Заключительные слова

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

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

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

Часто задаваемые вопросы

Что такое абстракция в вычислительном мышлении?

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

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

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

Почему абстракция важна в информатике?

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

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

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

Какова роль абстракции в разработке программного обеспечения?

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

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

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

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

Теги: информатикаИзбранное

Введение в информатику, часть 17: абстракция

Простая схема: введение в информатику, часть 17: абстракция . Простая схема: . Введение в информатику 2/e Copyright (C) 1999 MIT
Брайан Харви
Калифорнийский университет, Беркли
Мэтью Райт
Калифорнийский университет, Санта-Барбара

Скачать PDF версию
Назад к содержанию
ЗАДНЯЯ ЧАСТЬ резьба главы СЛЕДУЮЩАЯ
Массачусетский технологический институт Пресс-страница для Просто схема

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

 > (предложение 'она (слово 'бег'с))
(ОНА БЕЖИТ)
> (предложение 'она (слово 'прогулка'))
(ОНА ИДЕТ)
> (предложение «она» (слово «программа»)
(ОНА ПРОГРАММИРУЕТ)
 903:00
 

и вы фиксируете сходство в процедуре

 (определить (глагол от третьего лица)
  (предложение 'она (слово-глагол's)))
 

вы абстрагируете схему вычислений выражая его в форме, которая пропускает конкретный глагол в любом пример.

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

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *