Чим Factory Method відрізняється від звичайного конструктора?
Factory Method відрізняється від звичайного конструктора тим, що він делегує вибір конкретного класу і процес створення об'єкта підкласам або зовнішній логіці, тоді як конструктор завжди створює строго визначений об'єкт.
1. Контроль над створенням
-
Конструктор - жорстко фіксований:
new Car()завжди створюєCar. -
Factory Method - дозволяє вирішити під час виконання, який об'єкт створити:
javaTransport t = createTransport(); // може бути Truck або Ship
2. Гнучкість
- Конструктор не можна перевизначити.
- Фабричний метод можна успадковувати і змінювати поведінку, не чіпаючи решту коду.
3. Інкапсуляція логіки створення
- Конструктор не приховує процес створення.
- Фабричний метод може містити складну логіку: перевірку, кешування, вибір типу залежно від даних.
4. Розширюваність
- При додаванні нового типу з конструктором потрібно переписувати клієнтський код.
- З фабричним методом достатньо створити новий підклас із потрібною реалізацією.
Підсумок: Конструктор - це пряме створення конкретного об'єкта. Factory Method - це механізм вибору і створення потрібного об'єкта без прив'язки до конкретних класів, що робить архітектуру гнучкішою і масштабованішою.
Коротка відповідь
Для співбесідиPremium
Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.