Абстрагування – це відкидання зайвих для певного контексту деталей. Наприклад, використання мікроскопа як молотка для забивання цвяхів – це абстрагування, адже ми відкидаємо зайві деталі і працюємо лише з важливими у контексті забивання цвяхів:
- ця штука достатньо важка,
- ця штука достатньо тверда,
- цією штукою можна виконати удар та влучити по цвяху.
– Функція – це абстракція.
– Ні!
– Інтерфейс – це абстракція.
– Ні!
– Модуль / компонент / юніт – це абстракція.
– Ні!
– Слово – це абстракція!
– Ні. Наприклад, іменник – це посилання на конкретний об’єкт, або множину об’єктів. Критерій за яким утворюється множина – має відношення до абстрагування, оскільки, він є тим, спільним для множини об’єктів, що зберігається після абстрагування. Якщо ми створимо коробочку “Шурупи”, то абстрагуємось від розміру та типу шурупів, склавши досить відмінні один від одного об’єкти разом.
Абстракціонізм – це течія у мистецтві, в якій митці більш філософськи підходили до звернення до емоцій, без використання реалістичних зображень. Наприклад, у композиції 8 від Василя Кандинського я бачу джаз, хоча джаз можна лише почути. Якби я не чув джазу, то я б не зміг побачити його на зображенні. Якщо відкину від джазу усе, що в нього є спільного з іншими музичними стилями та спробувати зобразити ці його особливі прикмети візуально, то отримаємо щось на зразок зображеного вище.
На практиці у програмуванні ми використовуємо абстракції майже ніколи, то ж годі говорити про абстракції у коді. Абстракція – це слово яке ми вживаємо автоматично, без розуміння що воно насправді означає.
Залишити відповідь