Decorator (Проблематика), Dependency Inversion, UML/OOP зв'язки, T/S

В глибокому зануренні в проблематику, яку покликаний вирішувати паттерн проектування Декоратор, відео зачіпає питання Принципу Інверсії Залежностей, робить ревізію UML/OOP зв'язків (з особливим акцентом на наслідуванні реалізації) і фіналізується в(и)веденням принципу T/S -- Type/Structure Separation (Відділення типів від структур). Відео створено в рамках циклу Patternarhat, центральною лінією якого є паттерни проектування, а основним продуктом -- критичний перегляд підходів і принципів в сучасній інженерній думці світу програмування. 00:00:00 Про Patternarhat 00:00:38 Вступне про Decorator 00:01:15 Про що відео 00:01:49 Приклад Fighting 00:02:34 Наївний дизайн Fighting-у на базі реалізації інтерфесу 00:03:58 Розширяємо наш Fighting (додаємо мечі і щити нашим бійцям) 00:06:14 Проблеми розширення дизайну, коли кожна комбінація бійця потребує окремого класу 00:07:58 Задіюємо наслідування реалізації (які з цим проблеми) 00:11:32 Коли порядок має значення, а наслідування безсиле 00:13:47 Фантазії про підміну базового класу 00:16:02 Швидкий поверховий аналіз видів наслідування. + Окреслення того факту, що наслідування реалізації не валідне з точки зору Принципу Інверсії Залежностей 00:20:04 Приклад з бункером. + Композиція 00:24:10 Чи призводить заміна композиції на агрегацію до інвертованої залежності? 00:27:17 Підсумок жорсткої спайки у випадках композиції і агрегації класів 00:28:29 Реалізація бункера по феншую (з підтримкою інверсії залежностей) 00:34:47 "Інвертована" агрегація 00:35:04 Чи можлива "інвертована" композиція 00:40:47 UML Dependency - це не те що всі звикли Dependency називати 00:48:42 Направлена асоціація 00:49:58 Підсумуємо UML Зв'язки Рівня Екземплярів (+ ненаправлена асоціація) 00:51:21 UML Зв'язки Рівня Класів 00:54:20 Два приклади наслідування реалізації на бункері (демонстрація жорсткої спайки при наслідуванні; очікування декоратора) 01:00:37 Підсумовуємо UML зв'язки в розрізі Інверсії Залежностей у таблиці (відмічаємо стрілки, які не можуть йти від інтерфейсу; вводимо стрілку знання) 01:05:55 Роздуми про те, чому погані зв'язки в принципі можливі 01:07:18 Позбавляємо клас здатності оголошувати тип 01:10:59 Як вплинув клас без типу на таблицю зв'язків 01:14:35 Підсумки про Принцип Інверсії Залежностей (як його назва виражається через зв'язки на рівні класів/інтерфейсів) 01:17:23 T/S, Type/Structure Separation Principle, Принцип Розділення Типу і Структури (весь цинус відео!) 01:19:38 Про наступне відео і прощання 01:19:52 Outro

Смотрите также