Абстракция 🔥 термин, виды, история искусства, как рисовать
Зачастую, когда мы смотрим на абстрактный рисунок в известной галерее, нас невольно посещает мысль о том, что мы легко смогли нарисовать точно такую же картину.
Многим непросвещенным зрителям абстрактная живопись кажется элементарной, не требующей особых навыков, знаний или таланта. Но на самом дере, заниматься ею еще сложнее, чем традиционной живописью.
Действительно, абстракционизм не признает норм и правил. И даже в кругу некоторых художников бытует мнение, что нет ничего проще, чем разбрызгивать краски и наносить мазки в хаотичном порядке. Но такое мнение ошибочно, а сама абстрактная картина может нести в себе такую информационную нагрузку, как и картина с изображением реальных предметов или фигур.
Задумываясь над особенностями абстракции, мы постепенно начинаем осознавать, что самое важное состоит не в нарисованных предметах, а в тех чувствах, которые возникают у зрителя при рассмотрении картины.
Этот закон воплощен в своем максимальном проявлении именно в абстрактном искусстве. И здесь возникает резонный вопрос: «Почему абстрактная живопись ценится так же, как и классическая»?
Содержание
- Терминология
- Абстракция в нашей жизни
- Факты и мифы
- Виды абстракции
- История абстрактного искусства
- Как нарисовать абстракцию?
Терминология
В поднятом вопросе будут фигурировать такие термины, как «абстракция» и «абстракционизм». Кто-то в полной мере понимает их суть и может найти отличия, но для большинства читателей эти понятия отождествляются.
Причем абстрактные картины мы себе представить можем (опять-таки, благодаря абстрактному мышлению), на дать более или менее осмысленное определение указанным понятиям у нас вряд ли получится.
Абстракцией в общем виде называют процесс отвлечения от конкретных характеристик объекта реального мира. Любой объект можно заменить его образом или моделью. Абстракция может выступать, как метод научного познания и формирования понятий.
Абстрактное искусство – это направление, в котором визуальная реальность уходит на второстепенный план. В качестве инструмента передачи идеи выступает цвет, форма, знак или жест. Под словом «абстракция» зачастую подразумевается отделение чего-либо одного от другого.
Позднее в искусстве стали использовать геометрические формы и жесты, никак не связанные с реальными прототипами. Такие картины и называют абстракцией.
Абстракция в нашей жизни
Живопись не обладает абсолютным патентом на абстракцию. Она встречается повсюду в нашей повседневной жизни. Абстрактное мышление защищает нас от переизбытка полученной информации. К примеру, мы не задумываемся о том, что буква, написанная обыкновенной шариковой ручкой, — есть результат взаимодействия миллиардов молекул чернил с бумагой. Мы рассматриваем проблему как бы «сверху», не отвлекаясь на ненужные подробности. Без такого мышления мы смогли бы воспринимать мир на уроне примитивного разума.
К примеру, в Бразилии проживают индейцы Пираха. Практически все представители племени отличаются скудным абстрактным мышлением. В их алфавите всего несколько гласных и несколько согласных букв. Они не знают истории и живут одним днем. В качестве меры используется только два числа: несколько и много, а цвета делятся на темные и светлые. Справедливости ради следует заметить, что от своей примитивности индейцы не страдают и живут вполне счастливой жизнью, однако для нас их уровень развития неприемлем.
Факты и мифы
Порассуждать над абстракцией в живописи старается даже тот, кто видит картину впервые. Как часто вы ловили себя на мысли о том, что смогли написать бы что-то подобное?
Бытует мнение, что для рисования реалистичных картин нужно обладать определенными талантами, навыками, знаниями. Абстракция по силам абсолютно каждому. Естественно, это миф, который сразу следует развеять. Порой нарисовать предмет с натуры бывает легче, чем логически завершенную абстрактную композицию. Теоретически подкованные художники прекрасно понимают, что осмысленное рисование требует от мастера временных затрат.
Необходимо уметь манипулировать штриховкой, передавать глубину объема, анализировать перспективные сокращения.
Помимо этого, можно испортить картину, если, к примеру, выбран неправильный масштаб предметов, и они оказываются чересчур большими или маленькими, по отношению к полотну.
Именно ошибочная компоновка сможет отвлечь внимание даже в том случае, если мазки положены сочно, грамотно и профессионально. Достаточно сложно даже понять и представить, что абстрактное искусство опирается на расположение частей в композиции и пренебрегает формами и силуэтами.
Абстракция создается по законам классической живописи. Здесь действуют основные принципы передачи цвета, тона и перспективы. Сохраняются законы статики и динамики, цельности и неделимости, равновесия и акцента. Отход от деталей объекта еще сильнее привлекает внимание на логическую структуру картины.
В классическом пейзаже даже подобранный и согласованный по цвету набор пятен может быть не таким выразительным, как абстракция из геометрических фигур.
Переходя от одной фигуры к другой, зритель заостряет взгляд то на одной части картины, то на другой. При рассмотрении пейзажа такого нет. Окинув взглядом объект, зритель не всегда хочет возвращаться к деталям.
При создании композиции приходится пользоваться абстракцией. В реалистической живописи художники прибегают к эскизам, как к обязательному этапу на пути создания уравновешенной композиции. В таком эскизе задуманное абстрагируется до тривиальной цвето-тональной схемы.
Эти традиции передаются художниками из поколения в поколение. Со временем меняются жанры, но принципы остаются неизменными. Так, уже на этапе создания эскиза можно точно определить, какие тона будут вызывать акцент внимания, какие именно детали станут основными, что в картине будет главным.
youtube.com/embed/B6Lr-iHD02I» frameborder=»0″ allowfullscreen=»allowfullscreen»>Абстракция должна скрывать в себе образ. Современный человек живет в мире высоких скоростей. Даже мыслить мы уже привыкли быстро, не обращая внимания на детали, словно наше время ограничено. Именно поэтому зритель может не понять абстрактную картину, не увидеть в ней знакомых образов. Естественно, художник знает об этом, поэтому хорошая абстракция не обходится без «ключа».
Им может выступать едва уловимый знак или символ, который способен побудить зрителя к ассоциативному мышлению. Конечно, подсказку можно спрятать и в названии картины, но и сама картина должна содержать конкретику: узнаваемую деталь, силуэт, фактуру.
Виды абстракции
Абстрактное искусство можно условно разделить на шесть типов. В них доля абстракции различна, однако все они связаны с отделением от реальности.
- Криволинейное абстрактное искусство. Криволинейная абстракция хорошо просматривается в кельтском искусстве, где абстрактные мотивы представлены чередованием узоров и спиралей. Но кельты не являются основоположниками этих мотивов, так как они встречались задолго до появления индоевропейских племен, в эпоху неолита. Но именно кельты дали криволинейной абстракции вторую жизнь, сделав узоры более сложными и запутанными. Кельтские мотивы вернулись в искусство в эпоху возрождения и модерна. Встречаются в работах Уильяма Морриса и Артура Макмурдо. Сегодня криволинейная абстракция считается основной особенностью исламского искусства.
- Световое абстрактное искусство.
- Геометрическая абстракция. Геометрическая абстракция – одно из течений интеллектуального искусства, основанное в 1908 году. Оно выделилось из аналитического кубизма, характеризующегося отвержением пространственной перспективы. Все внимание приковывалось к двумерным аспектам картины. В терминологии художников геометрическая абстракция известна также, как необъективное искусство. Здесь превалируют геометрические образы и формы (квадраты, треугольники, круги). В направлении геометрической абстракции работали такие художники, как Казимир Малевич, Пит Мондриан, Тео Ван Дусбург, Джозеф Альберс.
- Эмоциональная абстракция. Данный тип искусства объединил в себе стили, в которых натуралистическая основа является общим признаком. Натурализм реализуется через цвета и формы, но коренным образом отличается от геометрической абстракции. Если сторонники кубизма представляли абстракцию практически антиприродной, то интуиционное (эмоциональное) искусство возвращается к природе, хотя и описывает ее весьма отвлеченно. Эмоциональная абстракция включает в себя два течения: Сюрреализм и Органическую абстракцию.
- Минимализм. Минимализм считается авангардом абстракции, так как он лишен ассоциаций и внешних ссылок. Акцент делается только на то, что видит человек. Впоследствии данный вид абстракции вылился в такое течение, как постмодернизм.
История абстрактного искусства
Точно указать на истоки абстрактного искусства не представляется возможным, но по тем суждениям, которыми оперируют историки, становится понятно, что абстракция зародилась около 70000 лет назад. В пещере Бломбос (Южная Африка) были найдены куски камня, на которых выгравированы абстрактные геометрические узоры.
Следующие по хронологии находки датируются эпохой возведения пирамиды Эль-Кастильо. Обнаруженные в ней наскальные рисунки представляли собой точки и трафареты. Абстрактные узоры украшали и пещеры Альтамира. Пещерное искусство палеолита буквально полностью основывалось на абстрактных символах.
Живопись и скульптура Средних веков была построена на традиционных принципах природного и классического реализма. Это направление искусства изучалось практически во всех европейских академиях вплоть до 19 века.
Первой обязанностью здесь значится именно узнаваемость объекта, то есть, создание узнаваемой сцены. Каким бы ни была внешняя среда, искусство должно было полностью передавать реальность. Тенденция к изменениям стала просматриваться только к концу 19 века. Импрессионизм перечеркнул представления о единстве строгого академического стиля натуралистической живописи.
Первым абстрактным движением стал импрессионизм периода 1870-1880 годов. Несмотря на то, что в нем еще просматривался натуралистический подход, его можно было смело отнести к абстрактному искусству. Несколько позднее возникло новое движение – арт-нуво (модерн). Его становление и развитие приходятся на 1890-1914 годы.
В развитии абстрактного искусства можно выделить первостепенную задачу – переместить зрителя при помощи цвета и формы.
Импрессионизм как раз и отличался цветовыми акцентами, но особую роль играет экспрессионизм. Один из его основателей, Василий Кандинский считал, что любая абстрактная картина достигает части мозга зрителя без интеллектуального анализа. Эта часть мозга связана с искусством и музыкой. Но при этом Кандинский не являлся сторонником того, что абстракция не должна являться основой серьезного искусства.
Можно назвать ряд немецких экспрессионистов, которые не были приверженцами абстракции, но их методика работы с палитрой предопределило на новые открытия настоящих абстракционистов.
Импрессионизм имел апогей своего развития, но в начале 20 века сменился кубизмом, отвергающим декоративную привлекательность. В развитии кубизма огромную роль сыграли такие художники, как Жорж Брак и Пабло Пикассо.
Они реализовывали новый стиль поэтапно:
- Кубизм прототипа;
- Аналитический кубизм;
- Синтетический кубизм.
Основная идея приверженцев кубизма заключалась в том, что необходимо отходить от привлекательности импрессионизма и ориентироваться на интеллектуальность искусства. Так постепенно появились инновационные способы отображения реальности. Вместо традиционной линейной перспективы все чаще стала использоваться двумерная плоскость. При этом прорисовывался предмет с разных ракурсов.
Складывается такое ощущение, что фотограф делает несколько фотографий одного объекта под разными углами, а затем их нарезку выкладывает на одной плоскости. Но кубизм нельзя было назвать абстракцией по-настоящему. Отрицание старых методик всего лишь приоткрыло дверцу в мир настоящей абстракции.
Следует обратить внимание на несколько второстепенных довоенных движений, которые возникли на почве кубистской идиомы. Речь идет о вортицизме, основанном Перси Уиндхемом Льюисом, и футуризме, основоположником которого принято считать Маринетти. После таких разветвлений становится понятно, что если традиционная живопись основана на формах реального сира, то абстракция приемлет искусственные формы.
В России абстрактное искусство более известно как Суперматизм. Лидер этого движения, Казимир Малевич, делал акцент на ощущения. Суперматизм зародился в 1915 году. На творчество Малевича оказывали влияние работы Кандинского, в результате чего появились шедевры, опережающие время.
Впоследствии, в 1927 году, была опубликована теория суперматизма в книге «Необъективный мир». Одним из звеньев суперматического движения является конструктивизм. Эта школа была основана Александром Родченко. В основном работы в стиле конструктивизма были посвящены космосу, науке и социальным реформам.
Примерно в 20-х годах XX века появляется движение геометрической абстракции, которое было названо в честь голландского журнала «De Stijl». Основателем Де стейл считается Тео Ван Дусбург.
В указанном движении ключевую роль играл неопластицизм. Этот стиль основывался на изображении простых прямоугольных сеток, прорисованных основными цветами, зачастую только черными и белыми. Пит Мондриан – один из представителей неопластицизма. Следующим этапом в развитии абстрактного искусства стал сюрреализм. Он ознаменовался появлением фэнтезийных образов. Картина Сальвадора Дали «Постоянство памяти» наполнена необычными образами.
К 1945 году центр абстрактного искусства переместился в США. Одной из всемирно известных школ в то время была нью-йоркская школа абстрактного экспрессионизма. Живопись абстрактного экспрессионизма достаточно своеобразно и «расплывчата».
Художников нельзя отнести ни к приверженцам абстракции, ни к экспрессионистам. Как правило, работы в данном стиле ошеломляют зрителя не столько содержанием, сколько форматами и размерами. Сама же картина воспринимается интуитивно, поэтому и могла побудить активность самых жестких критиков.
С середины 60-х годов резко увеличилось число местных школ, разбивавших искусство на более мелкие течения. Все больше стало проявляться недоверие к тем стилям, которые зародились в начале века.
Исключением стал лишь минимализм и следовавший за ним неоэкспрессионизм. В указанных течениях работали такие художники-абстракционисты, как Ансельм Кифер, Виннер Ховард Ходжкин, Георг Базелиц.
Как нарисовать абстракцию?
Строго говоря, ответа на данный вопрос не существует, так как полету фантазии художника нет границ. К тому же, абстрактное искусство – это занятие не для дилетантов.
Но, утрируя все правила, можно постараться описать один из множества алгоритмов. Понадобятся акриловые краски. Им желательно отдать предпочтение, так как именно они практически не меняют цвет после высыхания, к тому же они быстро сохнут. Разбавляют краску в требуемых пропорциях в небольших пластиковых баночках.
В плане формата лучше всего придерживаться такого правила: чем больше формат, тем эмоциональнее получится абстракция. Так как абстракция не предполагает прорисовывание мелких деталей, то подойдет большая кисть.
Большие площади удобно окрашивать при помощи валика. Для разграничения цветовых зон используется скотч. Но это должен быть скотч малярный, который хорошо снимается с бумаги. Следует позаботиться и об оборудовании рабочего места. Возможны протечки краски, поэтому на пол желательно постелить тряпки или газеты. Это всего лишь примерный перечень инструментов. Полный же список зависит от фантазии художника.
Для того, чтобы перейти к непосредственному рисованию, необходимо обладать элементарными знаниями по цветоведению.
Художник должен наперед угадывать, какой результат получится при смешивании тех или иных цветов, а также как эти цвета будут сочетаться рядом друг с другом. И вот здесь начинается самое интересное. По определению, абстракция не приемлет рисование чего-то определенного. Но и превращать процесс создания картины в хаотичное движение кистью тоже не стоит.
Для начала попробуйте поэкспериментировать с двумя цветами. Отлично сочетаются между собой желтый и красный цвет. Один цвет используется в качестве фона, а другим цветом создается изображение.
При достаточно высокой густоте краски можно создать рельеф. Удобно пользоваться стеками или зубными палочками. Рельеф накладывается на подготовленный заранее фон. По густой краске стеками прорисовываются разные линии, при этом образуется изображение.
Еще один тип рельефа можно получить, если к слою краски прислонить кусок смятой газеты. Не стоит увлекаться использованием подручных средств. Все-таки, мазки кистью в картине должны превалировать.
Многие работы содержат в себе резкое разграничение цветовых зон. Но, прежде чем лепить скотч на полотно, следует хотя бы поверхностно прочитать о золотом сечении. Работают по скотчу валиком, так как здесь можно смело наносить большие порции краски.
На большом полотне целесообразно сделать несколько цветовых зон, то есть, придется применять скотч несколько раз. Человек склонен выбирать светлые тона, поэтому у неопытных художников доминирует свет, что не всегда уместно. В такую картину нужно сделать вкрапления черной краски или попробовать затемнить один из тонов.
Понять абстракцию дано не каждому. Некоторые зрители работы великих художников оценивают, как обыкновенную «мазню». У абстрактного искусства есть определенная теория, но нет строгих законов.
Шедевр может получиться как у опытного, так и у начинающего художника.
Что такое абстракции и интерфейсы — Журнал «Код»
Как в старом анекдоте: про объектно-ориентированное программирование можно рассказать просто и неправильно либо сложно и неправильно. Мы попробуем рассказать про очередной аспект ООП просто.
Зачем это: ООП — одна из главных концепций современной разработки. Она применима не к каким-то конкретным языкам, это скорее способ мышления в программировании. Если вы понимаете ООП, ваш код на любом языке будет чище, читаемее и эффективнее.
В этой статье разберём два сложных понятия из объектно-ориентированного программирования: абстракции и интерфейсы. Это ещё одна ступень в понимании непостижимого.
Основные идеи из ООП
- Объектно-ориентированное программирование построено вокруг объектов. Можно представить, что объект — это коробка, в которой лежат данные и функции.
- Деление на объекты нужно для того, чтобы можно было создавать, обслуживать и переделывать части программы, не влияя на другие части и программу в целом. По-умному это называется «для повышения уровня абстракции».
- Смысл объекта в том, что он умеет делать какие-то свои дела, и остальные объекты не должны знать, как он это делает.
- У объекта есть понятие атрибута и метода. Атрибут — это любые данные, которые хранятся в «коробке» объекта. Методы — это любые действия, которые можно совершать над объектом или внутри его. Атрибуты обычно выражаются переменными, а методы — функциями.
- Объекты необходимы, например, в компьютерных играх, где каждая штучка на игровом поле — это объект с какими-то свойствами. Или в интернет-магазине, где один объект отвечает за корзину, другой — за выкладку товара.
- Объекты можно создавать по шаблону — такие шаблоны называются классами.
Абстракция
Представьте, что вы попросили нескольких человек описать в общих чертах, что такое телефон и как им пользоваться: пусть это будут бабушка, мама и подруга. Бабушка вспомнит про дисковые телефоны и трубки с витым проводом. Мама расскажет про радиотелефоны, у которых есть база и есть трубка, с которой можно ходить по всей квартире, а подруга начнёт описывать мобильник.
Несмотря на то что рассказы будут сильно отличаться между собой, у них будет несколько общих моментов про телефон:
- у телефона есть трубка;
- в трубку мы говорим, из трубки — слушаем;
- можно набрать номер нужного человека и позвонить ему;
- если вам позвонят по телефону, вы это услышите и примете звонок.
Получается, что если представить абстрактный телефон, то получится такое устройство с динамиком, микрофоном и средством набора номера.
Это и есть абстракция: когда мы описываем только самые существенные детали, которые важны для задачи. В нашем случае задача такая — понять, что такое телефон и как им пользоваться. Поэтому микрофон и динамик для этой задачи важен, а способ связи телефона с сетью — нет. Устройство набора номера важно, а то, какая мелодия играет при вызове — нет.
🔥 Абстракция — это когда мы сосредотачиваемся только на существенных для задачи деталях и игнорируем всё остальное. В ООП абстракция означает, что для каждого объекта мы задаём минимальное количество методов, полей и описаний, которые позволят нам решить задачу. Чем меньше характеристик, тем лучше абстракция, но ключевые характеристики убирать нельзя.
Чтобы работать с абстракциями, используют интерфейсы.
Интерфейс
Итак, у нас есть некое устройство с трубкой, микрофоном, динамиком и средством набора номера. Но если вы вспомните рассказы мамы, бабушки и подруги, то обнаружите вот что:
- в микрофон говорят, чтобы собеседник мог вас услышать;
- чтобы слышать самому, ухо прикладывают к динамику;
- чтобы набрать номер, нужно с помощью номеронабирателя вызвать нужную последовательность цифр;
- когда идёт вызов, слышны гудки в динамике.
Всё это — интерфейсы. Они позволяют работать с объектом, не вникая в то, как он устроен внутри. Если вы умеете работать с интерфейсом номеронабирателя, то вам всё равно, нужно ли крутить диск, нажимать физические кнопки на радиотрубке или давить пальцем на сенсорный экран.
Такой интерфейс как бы говорит нам — я передам в телефон любые цифры, какие захочешь. Как я это сделаю внутри и как они будут обработаны — неважно, просто набери номер, а дальше телефон сам разберётся.
Интерфейсы — это действия над объектом, доступные другим объектам (поэтому они называются публичными).
Есть ещё инкапсулированные, то есть внутренние методы. Например, у микрофона есть публичный метод «Слушать голос», и есть внутренний метод «Преобразовать голос в электрические сигналы». С его помощью он взаимодействует с другими частями нашего абстрактного телефона. Про инкапсуляцию будет отдельный материал, потому что тема большая.
Оцифровка звука: как это работает
Сложная терминология
Строго говоря, интерфейсы — это не действия, а методы. Сейчас объясним.
В программировании есть операции — это простейшие действия, например, скопировать значение из одной переменной в другую.
Из простых действий составляются функции — это когда несколько операций «склеиваются» в нечто единое. Мы даём этой склейке название и получаем функцию. Например, может быть функция «проверить правильность электронного адреса», которая состоит из нескольких десятков простых операций.
На языке ООП функции, привязанные к объектам, называются методами. Просто такой термин. По сути это функции, то есть склеенные вместе операции.
Итого: метод — это набор простых действий, которые склеили в единое целое и засунули в объект.
Для чего это всё
Допустим, вы работаете в команде над большим продуктом. В таких случаях удобно разделить одну большую программу на множество мелких подпрограмм и сервисов, каждый из которых решает свою узкую задачу.
Если заранее не договориться о том, как эти компоненты обмениваются данными между собой, то может случиться то, о чём мы уже предупреждали:
- один программист делает функцию, которая отвечает за регистрацию новых пользователей;
- все остальные используют эту функцию, привыкли к её параметрам и знают, что туда нужно передавать;
- внезапно этот программист понимает, что можно запрограммировать более эффективный вариант регистрации, который будет работать гораздо быстрее;
- он полностью переписывает функцию, и в этот момент у всей команды ломается логика программы: старые вызовы не работают, потому что функция теперь принимает другие данные (или в другой последовательности).
Чтобы такого не было, поступают так:
- Один программист отвечает за регистрацию новых пользователей.
- Он делает объект «Пользователь» и прописывает ему интерфейс «Зарегистрировать».
- Также он говорит, что интерфейс «Зарегистрировать» будет принимать на вход три переменные: имя, почту и пароль.
- Теперь программист говорит остальным: «Ребята, если нужно зарегистрировать нового пользователя — используйте интерфейс Пользователь.Зарегистрировать(имя,почта,пароль)».
- Даже если внутри объекта поменяется вся логика работы, то это никак не повлияет на интерфейс — все так же смогут им пользоваться.
- А всё потому, что никому нет дела, как тот программист реализовал свою часть, если через интерфейс всё работает нормально. Неважно, как он шифрует пароль, где хранит почту, как обрабатывает имя и в какую базу данных всё это складывает. Если интерфейс работает, все остальные могут продолжать разработку.
Текст
Михаил Полянин
Редактор
Максим Ильяхов
Художник
Даня Берковский
Корректор
Ирина Михеева
Вёрстка
Мария Дронова
Соцсети
Олег Вешкурцев
4
Даже опытные программисты не всегда понимают ООП. А вы — поймёте. Приходите в Практикум, чтобы постепенно стать опытным программистом.
Прийти в Практикум
Определение и примеры — Концептуально
Что такое абстракция?
Определение
Абстракция — это процесс обобщения сложных событий реального мира до лежащих в их основе понятий, скрывающий сложность ситуации.
Объяснение
Это может звучать немного, ну… абстрактно, но вы, вероятно, удивитесь, как часто вы полагаетесь на абстрагирование вещей в своей жизни.
Академики, в частности, имеют плохую репутацию из-за того, что полагаются на абстрактные концепции для объяснения своей точки зрения, а не на конкретные детали. Но процесс абстрагирования может помочь нам понять реальный мир, скрывая сбивающие с толку детали, оставляя нам общие концепции, которые остаются верными в разных предметных областях и могут применяться в различных ситуациях.
Идея абстракции широко используется в компьютерных науках, поэтому мы начнем с объяснения, не связанного с математикой, а затем покажем примеры того, как эта концепция применима в других сферах вашей жизни.
Примеры абстракции
Концепция абстракции является ключом к работе компьютеров. Компьютеры понимают только 1 и 0, иначе известные как двоичный или машинный код. Было бы очень много времени, если бы программист, который хочет запрограммировать компьютер для игры в тетрис, должен был бы индивидуально записывать все 1 и 0 самостоятельно.
Чтобы избежать всей этой работы, программисты разрабатывают языки более высокого уровня для управления машинным кодом. Эти 1 и 0 связаны синтаксисом языка программирования более высокого уровня, построенного поверх этого машинного кода.
Python, PHP и Java являются примерами особого типа языка программирования более высокого уровня, называемого объектно-ориентированным языком программирования. Программист-человек может написать свое программное обеспечение на этих более простых в использовании языках, а затем компьютер преобразует сценарий во что-то это понимает — машинный код — через интерпретатор или компилятор. Все выигрывают.
Шахматы
Нет двух одинаковых шахматных партий с точки зрения точных ходов, но есть некоторые общие идеи, которые могут быть полезны в различных сценариях. «Контролировать центр доски», «защищать ферзя» и «держать фигуры подальше от краев» — все это абстрактные идеи, а не конкретные ходы как таковые.
Их, в свою очередь, можно абстрагировать до таких идей, как «создание позиционного преимущества» и «поддержание активности фигур». Видите ли вы, как «контролировать центр доски» и «удерживать фигуры подальше от краев» являются подклассом «создания позиционного преимущества»? У каждого из них есть общие черты, которые мы объединили в одну абстрактную идею, поднявшись на один уровень абстракции.
На самом низком уровне детали реализации — последовательность перемещения отдельных фигур по доске — различаются для каждой шахматной партии, но абстрактные идеи остаются теми же. Алгоритмы, построенные на алгоритмах.
Абстракция в реальной жизни
Если вы ищете синоним в тезаурусе, у вас, вероятно, есть абстрактное представление об идее, которую вы хотите передать, и вы начинаете искать подходящее слово, соответствующее вашей абстрактной идее.
Вы можете водить машину, не зная, как работает двигатель внутреннего сгорания, вы можете ходить в магазины, не зная, как ствол вашего мозга управляет вашей походкой или частотой дыхания, и вы можете платить за продукты, используя нашу универсальную абстракцию «стоимости». ‘: Деньги.
Во всех этих ситуациях подавляющая сложность скрыта от глаз, поэтому мы действительно можем что-то сделать.
Также проверьте:
Что такое абстракция?, Меньше неправильного
Абстракция в объектно-ориентированном программировании (ООП)
Абстракция в реальной жизни
поведение или структура объекта. Например, наш разум работает на основе абстракций. Когда мы думаем об автомобиле, в основном мы вспоминаем об абстрактном понятии автомобиля и его функциональных возможностях. Вот почему мы можем распознать такой объект, как автомобиль, даже если он отличается от любого другого автомобиля, который мы видели ранее. Другими словами, мы разрабатываем концепции повседневных объектов в процессе абстракции, где мы удаляем ненужные детали и концентрируемся на основных атрибутах и функциях.
Абстракция присутствует почти во всех реальных приложениях. Например:
- Когда мы входим в какую-либо онлайн-учетную запись, мы вводим идентификатор пользователя и пароль. После нажатия кнопки входа: все, как входные данные отправляются на сервер и проверяются, абстрагируется.
- Когда мы печатаем на своем компьютере, мы нажимаем клавиши, чтобы получить результаты на нашем экране. Мы ничего не знаем о механизме, который производит вывод.
- В Java HashMap предоставляет методы для хранения и извлечения пар ключ-значение из карты. Таким образом, единственная информация, которая нам нужна для использования хеш-карты, — это определить вариант ее использования в нашем приложении. Как это реализовано внутри, мы этого знать не обязаны.
- Предположим, мы разрабатываем класс для взаимодействия с базой данных для выполнения некоторых операций с базой данных. Теперь клиенту нашего класса не нужно разбираться в программировании баз данных. Им нужно знать только некоторые детали класса для выполнения операций с базой данных без глубоких знаний программирования баз данных.
Что такое абстракция в ООП?
В ООП Абстракция предоставляет необходимые функции внешним объектам и скрывает детали реализации. Это помогает программистам использовать сложную логику внутри объекта, не разбираясь в ее реализации. Другими словами, это процесс сокрытия внутренних деталей приложения от внешнего мира, так что нам нужно знать только то, что делает код, но не то, как он это делает!
Критические идеи для размышления!
- Объект содержит некоторые свойства и методы. Используя модификаторы доступа, мы можем скрыть важные детали и предоставить доступ к нужным методам и свойствам внешнему миру. Это одна из общих процедур для достижения абстракции.
- Абстракция включает определение объектов как абстрактных «акторов», которые могут выполнять некоторый набор функций, изменять свое состояние и взаимодействовать с другими объектами.
- Мы также можем понять абстракцию, используя наследование. В иерархии наследования родительские классы содержат общую реализацию, а дочерние классы включают более подробную реализацию родительских классов.
- Абстракция — это основная идея, лежащая в основе многих фундаментальных принципов oops, таких как Open-Closed Principle и Принцип инверсии зависимостей .
Как реализовать абстракцию?
- В Java мы реализуем абстракцию, используя абстрактный класс и интерфейс.
- В C++ мы реализуем абстракцию с помощью файлов заголовков, спецификаторов доступа и абстрактных классов. Мы можем создавать абстрактные классы в C++, используя виртуальные функции и наследование.
Позже мы обсудим абстракцию в Java и C++ в отдельных блогах.
Некоторые важные концепции для изучения!
- Как добиться абстракции в Java с помощью абстрактных классов и абстрактных методов?
- Как добиться абстракции в Java с помощью интерфейсов?
- Когда использовать абстрактный класс и интерфейс в Java?
- Что такое абстрактный класс C++?
- Что такое чистая виртуальная функция в C++?
Типы абстракции в ООП
Объектно-ориентированное программирование можно рассматривать как попытку абстрагировать как данные, так и управление. Итак, в объектно-ориентированном программировании есть два типа абстракции: абстракция данных и абстракция управления.
Абстракция данных
Абстракция данных в ООП заключается в четком разделении между свойствами типа данных и конкретными деталями его реализации. Для этого мы можем создавать типы данных в классе, разрабатывать операции для работы с типом данных и скрывать все детали реализации от внешнего мира. Другими словами, когда данные объекта недоступны внешнему миру, создается абстракция данных. При необходимости мы можем предоставить доступ к данным объектов через некоторые методы.
Другими словами, абстракция данных предоставляет интерфейс для типа данных, который может быть виден клиенту для его использования. В то же время внутри класса мы можем оставить операции, работающие с этими данными, полностью закрытыми, которые мы можем изменить позже для дальнейших обновлений или повышения эффективности. Идея состоит в том, что любые такие изменения в конкретной реализации не должны влиять на клиентский код.
Например, можно определить абстрактный тип данных под названием Словарь, где каждый ключ связан с уникальным значением, и мы можем получить доступ к значениям на основе их ключей. Такая структура данных может быть реализована с помощью хеш-таблицы, двоичного дерева поиска или даже простого массива. Для клиентского кода тип абстрактных свойств в каждом случае одинаков.
Абстракция управления
В ООП абстракция управления — это абстракция действий. Обычно нам не нужно предоставлять подробную информацию обо всех методах объекта. Другими словами, когда мы скрываем внутреннюю реализацию различных методов, связанных с клиентской операцией, создается абстракция управления.
Мы также можем понимать это по-разному на низком уровне. Программный код — это набор методов, написанных на языке программирования. В большинстве случаев некоторые методы аналогичны и повторяются несколько раз. Таким образом, идея абстракции управления состоит в том, чтобы идентифицировать все такие методы и объединить их в единое целое.
- Абстракция управления следует принципу DRY, что означает «Не повторяйтесь» и использование методов в программе.
- Используя абстракцию управления, мы можем создавать новые функции и объединять операторы управления в единое целое.
- Мы больше подчеркиваем, как можно реализовать конкретную функциональность, а не описываем каждую деталь.
Примечание: Абстракция управления является одной из основных целей использования языков программирования. Компьютерные машины понимают операции на очень низком уровне, такие как перемещение некоторых битов из одной ячейки памяти в другую и создание суммы двух последовательностей битов. Языки программирования позволяют сделать это на более высоком уровне.
Сравнение абстракции и инкапсуляции
Хорошо спроектированный код с правильным использованием абстракции соответствует Принципу наименьшего удивления: «Компонент системы должен вести себя так, как ожидает большинство пользователей. Поведение не должно удивлять пользователей».
Но главный вопрос заключается в следующем: как определить и показать пользователям ожидаемое поведение? Как обрабатывать детали их реализации? На этом этапе появляется следующий столп объектно-ориентированного программирования: 9Инкапсуляция 0077!
Основное различие между абстракцией и инкапсуляцией
Преимущества абстракции
- Абстракция используется для создания границы между приложением и клиентским кодом. Это может помочь нам уменьшить сложность проектирования и реализации программного обеспечения.
- В сложном программном обеспечении абстракция помогает нам разделить обязанности на программные сущности (классы, методы и т. д.), которые знают только требуемую функциональность друг друга, но не знают, как эта функциональность реализована.
- Абстракция максимально упрощает использование соответствующей информации. Другими словами, код с надлежащей абстракцией помогает программистам быстро понять, что этот код делает и для чего он предназначен. Это позволяет избежать дублирования кода и повышает возможность повторного использования кода.
- Абстракция позволяет программисту упростить программирование и сместить акцент с деталей реализации действий на классы, доступные методы и т. д. Это позволит пользователю избежать написания низкоуровневого кода.
- Позволяет программисту изменять внутреннюю реализацию методов или конкретных классов, не мешая интерфейсу.
- Используя абстракцию, мы можем повысить безопасность кода, поскольку пользователям будут предоставляться только важные детали.
Заключение
Таким образом, абстракция раскрывает только детали, касающиеся клиента или пользователя. Если клиент использует какой-либо класс, ему не нужно беспокоиться о внутренних деталях, связанных с операциями класса. Другими словами, это помогает нам отделить пользователя объекта от его реализации. Таким образом, поведение объекта легко понять и поддерживать. Как будто есть какое-то изменение в какой-то операции, нам нужно только изменить внутренние детали связанного метода.