Запропонувати правкуПокращити цю статтюДопрацюйте відповідь до «Як Factory Method пов'язаний із принципом відкритості/закритості (OCP)?». Ваші зміни проходять модерацію перед публікацією.Потрібне підтвердженняКонтентЩо ви змінюєте🇺🇸EN🇺🇦UAПереглядЗаголовок (UA)Коротка відповідь (UA)**Factory Method** напряму підтримує принцип відкритості/закритості (OCP), бо дозволяє розширювати поведінку системи без зміни наявного коду: новий тип продукту додається через новий підклас, а не через правку базового коду. **Ключове:** сам базовий код, що використовує `createProduct()`, залишається незмінним, коли з'являється новий тип продукту.Показується над повною відповіддю для швидкого нагадування.Відповідь (UA)Зображення**Factory Method** напряму підтримує **принцип відкритості/закритості (OCP)**, бо дозволяє **розширювати поведінку системи без зміни наявного коду**. --- ### 1. **Суть OCP** Принцип говорить: > *Класи мають бути відкриті для розширення, але закриті для модифікації.* > Тобто при додаванні нової поведінки ми повинні **додавати код**, а не **змінювати вже наявний**. --- ### 2. **Як це працює у Factory Method** Замість того щоб у клієнтському коді жорстко прописувати, який об'єкт створювати через `new`, ми використовуємо абстрактний метод `createProduct()`. Якщо з'являється новий тип продукту, ми просто: - створюємо **новий підклас**, - перевизначаємо в ньому фабричний метод. ```java abstract class Creator { abstract Product createProduct(); } class ConcreteCreatorA extends Creator { Product createProduct() { return new ProductA(); } } class ConcreteCreatorB extends Creator { Product createProduct() { return new ProductB(); } } ``` При цьому сам базовий код, що використовує `createProduct()`, **залишається незмінним**. --- ### 3. **Приклад** Якщо додати новий вид транспорту (наприклад, `Plane`), не потрібно змінювати клас `Logistics` - достатньо створити `AirLogistics`, перевизначивши `createTransport()`. --- ### 4. **Висновок** Factory Method дозволяє додавати нові типи об'єктів **без зміни наявної логіки**, що робить систему **гнучкою і розширюваною**, повністю відповідаючи принципу OCP.Для рев’юераПримітка для модератора (необов’язково)Бачить лише модератор. Прискорює рев’ю.