Ви розумієте абстрагування не правильно!

Абстрагування – це відкидання зайвих для певного контексту деталей. Наприклад, використання мікроскопа як молотка для забивання цвяхів – це абстрагування, адже ми відкидаємо зайві деталі і працюємо лише з важливими у контексті забивання цвяхів:

  • ця штука достатньо важка,
  • ця штука достатньо тверда,
  • цією штукою можна виконати удар та влучити по цвяху.

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

Композиція 8 від Василя Кандинського

Абстракціонізм – це течія у мистецтві, в якій митці більш філософськи підходили до звернення до емоцій, без використання реалістичних зображень. Наприклад, у композиції 8 від Василя Кандинського я бачу джаз, хоча джаз можна лише почути. Якби я не чув джазу, то я б не зміг побачити його на зображенні. Якщо відкину від джазу усе, що в нього є спільного з іншими музичними стилями та спробувати зобразити ці його особливі прикмети візуально, то отримаємо щось на зразок зображеного вище.

На практиці у програмуванні ми використовуємо абстракції майже ніколи, то ж годі говорити про абстракції у коді. Абстракція – це слово яке ми вживаємо автоматично, без розуміння що воно насправді означає.

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *