Что такое абстракция?
- Информация о материале
- Григорий Лаварцев
- Хобби и увлечения
- Просмотров: 2613
Абстракция (лат. «отвлечение») — умственный процесс, при котором мы из целого представления (напр., представления об отдельном предмете) выделяем (отвлекаем) одну или несколько частей и делаем их самостоятельными предметами мышления.
В этом общем смысле абстракция есть основание и необходимое условие всякого мышления, т.к. последнее может познавать действительность только благодаря тому, что из бесконечного разнообразия особенностей и отношений предметов выбираются и делаются содержанием своих понятий лишь некоторые. Но, далее, абстракция пользуется и самими понятиями, образуя из них новые, разумеется, более бедные по (конкретному) содержанию понятия.
Так, физика, изучая законы равновесия рычагов, не принимает во внимание (абстрагирует) вес рычага и пр. Абстрактное мышление нельзя, поэтому, не признать односторонним, т. е. таким, которому недоступно полное содержание действительности. Но в то же время, наше мышление только таким односторонним путем может мало-помалу проникать в связь вещей.
Хотя каждое понятие, в самом широком смысле, можно назвать абстрактным (отвлечённым), обычно этот термин применяется лишь к таким понятиям, которые относятся не к самим вещам, но лишь к их свойствам, состояниям и отношениям и которые по содержанию своему, таким образом, не могут быть представлены, как нечто существующее, но лишь как определения существующего. Противоположность абстрактному составляет понятие конкретный.- Назад
- Вперед
Опубликуйте статью и получите поощрение |
Поделитесь материалом или обсудите его на своей страничке в соцсетях: | ||||||||
- Рубрики
- Хобби и увлечения
- Что такое абстракция?
Что такое абстракция и как её понять
Интерьерные картины Ginger Art
Абстрактное искусство — это искусство, которое не пытается изобразить точную визуальную реальность, но вместо этого использует цвета, формы и жестовые знаки для достижения своего эффекта. Грубо говоря, слово «абстракция» означает отделить что-то от чего-то другого.
Термин может применяться к искусству, в основе которого лежит объект, фигура или ландшафт, где формы были упрощены или представлены схематично. Он также применяется к искусству, использующему такие формы, как геометрические фигуры или жестовые знаки, которые вообще не имеют источника во внешней визуальной реальности.
Некоторые художники этой «чистой» абстракции предпочитают такие термины, как «конкретное искусство» или «необъективное искусство», но на практике слово «абстракция» используется повсеместно, и различие между ними не всегда очевидно.
Абстрактное искусство часто рассматривается как несущее моральное измерение в том смысле, что оно выступает за такие добродетели, как порядок, чистота, простота и духовность. С начала 1900-х годов абстрактное искусство сформировало центральный поток современного искусства.
Василий Кадинский
Казаки
1910-1911
В начале 20-го века экспрессионистские работы включали в себя интенсивный цвет и не натуралистическую кисть, часто основанную на внутренних чувствах художника.
Кандинский видел в своих абстрактных картинах альтернативный путь к духовной реальности.
Хуан Гри
Бутылка рома и газеты
1913–14
Кубизм всегда начинался с предмета из реальности (часто это объекты и фигуры), а затем его элементы разбивались на отдельные области или плоскости, показывая разные точки зрения в одно и то же время.
Кубизм непосредственно влиял на другие формы абстракции.
Соня Делоне
Электрические призмы
1913
Орфизм. Название происходит от музыканта Орфея из древнегреческих мифов, так как считалось, что живопись должна быть как музыка. Главные художники Роберт Делоне и Соня Делоне также использовали термин симултанизм для описания своих работ этого периода.
Казимир Малевич
Динамический супрематизм
1915 или 1916
Супрематизм. Малевич создал новую форму абстракции, чтобы освободить искусство от реального мира. Помимо «супрематического квадрата», Малевич разработал целый ряд форм, часто производимых в насыщенных цветах, плавающих на обычно белом фоне.
Моррис Луи
Альфа-Фи
1961
Невозможно догадаться, но на этой картине изображено поместье Морриса Луи. Пост-живописная абстракция. Эта форма абстракции больше, чем когда-либо, фокусировалась на основных элементах живописи: форме, цвете, фактуре, масштабе, композиции и была безжалостной, отвергая мистику и любые ссылки на внешний мир.
Виктор Вазарели
Баня
1964
Оптическое искусство (Op art) Этот стиль жесткой геометрической абстракции реагировал на более жестовые формы абстрактного экспрессионизма, используя только монохроматические поля чистых краев, которые усиливали плоскостность поверхности изображения.
За абстрактным искусством стоит много теоретических идей. В то время как некоторые приняли идею «искусство ради искусства» (что искусство должно быть связано исключительно с созданием красивых эффектов), другие предложили, что искусство может или должно быть похоже на музыку, поскольку музыка — это образцы звука, эффекты искусства должны быть созданы чистыми узорами формы, цвета и линии.
Идея, выведенная древнегреческим философом Платоном, о том, что высшая форма красоты заключается не в формах реального мира, а в геометрии, также используется в обсуждении абстрактного искусства, как и идея абстрактного искусства, поскольку она не представляют материальный мир, можно увидеть, чтобы представлять духовный.
Рейтинг
☆
☆
☆
☆
☆
0.0 (0 голосов)
Интерьерные картины Ginger Art
Россия, Санкт-Петербург
Магазин
Блог (1)
Следите за творчеством мастера
Блоги по теме
Ключевые слова
- Ключевые слова
- абстракция
- абстрактная картина
- абстрактная живопись
- живопись
- искусство
- картина
Рубрики блогов
Новости магазинов
Акции и распродажи
Персональные записи
терминология — Что такое абстракция?
Думаю, вам может пригодиться мой пост в блоге о дырявых абстракциях. Вот соответствующий фон:
Абстракция — это механизм, помогающий взять то общее, что есть в наборе связанных фрагментов программы, удалить их различия и позволить программистам работать непосредственно с конструкцией, представляющей это абстрактное понятие. Эта новая конструкция (фактически) всегда имеет
Например, класс List
может абстрагироваться от деталей реализации связанного списка, где вместо того, чтобы думать с точки зрения манипулирования следующими
и предыдущими
указателями, вы можете думать на уровне добавления или удаления значения в последовательность. Абстракция — важный инструмент для создания полезных, богатых, а иногда и сложных функций из гораздо меньшего набора более примитивных концепций.
Абстракция связана с инкапсуляцией и модульностью, и эти понятия часто понимаются неправильно.
В примере List
инкапсуляция может использоваться для сокрытия деталей реализации связанного списка; в объектно-ориентированном языке, например, вы можете сделать указатели next
и previous
закрытыми, где только реализация List имеет доступ к этим полям.
Инкапсуляции недостаточно для абстракции, потому что она не обязательно подразумевает наличие новой или другой концепции конструкций. Если все Класс List
дал вам ‘ getNext
‘/’ setNext
‘ методы доступа к стилю, он будет инкапсулировать от вас детали реализации (например, вы назвали поле ‘ prev
‘ или ‘ previous
‘? какой у него статический тип?), но он будет иметь очень низкую степень абстракции.
Модульность связана с сокрытием информации : Стабильные свойства указываются в интерфейсе, и модуль реализует этот интерфейс, сохраняя все детали реализации внутри модуля.
Инкапсуляция помогает скрывать информацию (чтобы ваш код не зависел от нестабильных деталей реализации), но инкапсуляция не является обязательной для модульности. Например, вы можете реализовать структуру List
на C, предоставив миру указатели ‘ next
‘ и ‘ prev
‘, а также предоставить интерфейс, содержащий initList()
, addToList()
, и функций removeFromList()
. При условии соблюдения правил интерфейса вы можете гарантировать, что определенные свойства всегда будут сохраняться, например, гарантировать, что структура данных всегда находится в допустимом состоянии. [Например, классическая статья Парнаса о модульности была написана с примером на ассемблере. Интерфейс — это контракт и форма коммуникации о дизайне, он не обязательно должен механически проверяться, хотя это то, на что мы сегодня полагаемся. ] 93 «хорошо инкапсулирован», он все равно будет работать хуже, чем улучшенный алгоритм n log n.
Если интерфейс предназначен для конкретной операционной системы, ни одно из преимуществ модульной конструкции не будет реализовано, когда, скажем, видеоигру необходимо перенести с Windows на iPad.
Если созданная абстракция раскрывает слишком много несущественных деталей, она не сможет создать новую конструкцию со своими собственными операциями: это будет просто другое имя для той же самой вещи.
Введение в абстракцию в C#
Поиск
Абстракция — это одна из ключевых концепций объектно-ориентированного программирования (ООП), используемая для управления сложностью приложений .NET. Скрывая детали реализации, абстракция упрощает дизайн и облегчает его понимание и поддержку.
В этом руководстве по программированию рассказывается об абстракции в C#, ее преимуществах, способах ее реализации и иллюстрируются концепции с помощью примеров кода.
Прежде чем приступить к работе, вы можете прочитать наш учебник: Объектно-ориентированное программирование на C# для начинающих, если вам нужен учебник по основам ООП.
Что такое абстракция в C#?
Абстракция — это способ упростить использование, скрывая за этим сложность. В мире программирования абстракция — это мощный инструмент, который может помочь сделать ваш код более читабельным и удобным в сопровождении. Абстракция формирует основную концепцию, на основе которой были разработаны определенные принципы ООП, такие как принципы Open-Closed и Dependency Injection.
Абстракция — это мощный инструмент в разработке программного обеспечения, и C# предоставляет несколько различных способов его реализации. Наиболее распространенной формой абстракции является инкапсуляция , , которая скрывает детали реализации от пользователя.
Это можно сделать, создав классы и методы, которые доступны только в классе или пространстве имен, где они определены. C# также поддерживает абстрактных классов и абстрактных интерфейсов , которые позволяют определять контракты, которые должны быть реализованы производными типами.
Абстракция предоставляет необходимую функциональность внешнему миру, скрывая или инкапсулируя детали внутренней реализации. Следовательно, программистам не нужно знать внутренние детали сложной логики, вместо этого они могут просто использовать ее.
Давайте разберемся с концепцией инкапсуляции и абстракции на примере. Рассмотрим автомобиль , его внешние функции и механические внутренние детали. В то время как автомобильный инженер озабочен тем, как автомобиль работает внутри, пользователь обеспокоен только тем, как управлять автомобилем, его пробегом и т. д. Следовательно, точки зрения разных пользователей различаются.
Чтение : Внедрение зависимостей против инверсии управления
Вот еще один пример того, как абстракция работает в реальной жизни. Рассмотрим онлайн-приложение для корзины покупок, в котором есть экран входа и регистрации для регистрации новых пользователей или входа существующих пользователей. Внутренние детали, связанные с тем, как работает процесс входа в систему (то есть логика, лежащая в основе функциональности входа), абстрагируются от конечного пользователя.
Конечного пользователя интересует только ввод имени пользователя и пароля. Вас, как разработчика, должно интересовать, как будет работать функция входа в систему, как улучшить ее производительность, безопасность и т. д.
Преимущества абстракции в C#
Краткий обзор преимуществ абстракции в C#:
- За счет изоляции приложения и клиентского кода абстракция может снизить сложность проектирования и реализации программного обеспечения.
- Абстракция разделяет обязанности на разные сущности (классы, методы и т. д.)
- Абстракция позволяет разработчику изменять детали реализации функциональности, не нарушая интерфейс, который будет использоваться конечным пользователем для доступа и использования функциональности
- Абстракция повышает безопасность кода и данных, поскольку вам нужно предоставить конечному пользователю только соответствующие сведения
Типы абстракций в C#
По сути, в ООП существует два типа абстракции: абстракция данных и абстракция процесса . В первом данные скрыты от внешнего мира, а доступ к ним осуществляется только с использованием определенных спецификаторов доступа; в последнем случае детали внутренней реализации методов или операций абстрагируются от внешнего мира.
Другими словами, абстракция данных инкапсулирует данные внутри одного модуля (обычно класса) и делает эти данные доступными для внешнего мира только с использованием предоставленных интерфейсов. Обратите внимание, что это не тот интерфейс, о котором мы знаем в C#, вместо этого он представляет методы или операции, которые можно использовать для доступа к данным.
Вы можете узнать больше о классах C# в нашем руководстве: Introduction to Classes in C#.
Как запрограммировать абстракцию на C#
Здесь мы покажем несколько примеров того, как запрограммировать абстракцию на C#. Рассмотрим следующий класс с именем Клиент :
открытый класс Клиент { частный интервал _id; приватная строка _firstName; приватная строка _lastName; приватная строка _email; приватная строка _phone; приватная строка _address; }
Класс Customer содержит несколько полей — или членов данных — которые являются закрытыми. Таким образом, если вы создадите экземпляр класса Customer , вы не сможете получить доступ ни к одному из этих полей. Программистам нужно общедоступных членов (методы или свойства) для доступа к этим инкапсулированным полям, как показано ниже:
public int GetId() { вернуть _id; } общедоступная строка GetFirstName() { вернуть _firstName; } общедоступная строка GetLastName() { вернуть _firstName; } общедоступная строка GetEmail() { вернуть _firstName; } общедоступная строка GetPhone() { вернуть _firstName; } общедоступная строка GetAddress() { вернуть _firstName; }
Это классический пример абстракции данных. Обратите внимание, что данные-члены инкапсулированы внутри класса, что делает их скрытыми от внешнего мира. Полный исходный код класса Customer приведен в приведенном ниже примере кода:
открытый класс Customer { частный интервал _id; приватная строка _firstName; приватная строка _lastName; приватная строка _email; приватная строка _phone; приватная строка _address; общедоступный интервал GetId() { вернуть _id; } общедоступная строка GetFirstName() { вернуть _firstName; } общедоступная строка GetLastName() { вернуть _firstName; } общедоступная строка GetEmail() { вернуть _firstName; } общедоступная строка GetPhone() { вернуть _firstName; } общедоступная строка GetAddress() { вернуть _firstName; } }
Чтобы реализовать абстракцию процесса, вы можете скрыть детали внутренней реализации нескольких методов, являющихся частью операции.