fabrika

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
fabrika [2024/04/23 15:11]
oresh.dm
fabrika [2024/04/23 15:15] (текущий)
oresh.dm
Строка 1: Строка 1:
-Порождающие паттерны - это паттерны, которые упрощают и абстрагируют создание информационных объектов. На которых базируется все ООП.+**Порождающие паттерны** - это паттерны, которые упрощают и абстрагируют создание информационных объектов. На которых базируется все ООП.
  
-Фабричный метод (англ. Factory Method), или виртуальный конструктор (англ. Virtual Constructor) — порождающий шаблон проектирования, предоставляющий подклассам (дочерним классам, субклассам) интерфейс для создания экземпляров некоторого класса. В момент создания наследники могут определить, какой класс создавать. Иными словами, данный шаблон делегирует создание объектов наследникам родительского класса. Это позволяет использовать в коде программы не конкретные классы, а манипулировать абстрактными объектами на более высоком уровне.+**Фабричный метод (англ. Factory Method), или виртуальный конструктор (англ. Virtual Constructor)** — порождающий шаблон проектирования, предоставляющий подклассам (дочерним классам, субклассам) интерфейс для создания экземпляров некоторого класса. В момент создания наследники могут определить, какой класс создавать. Иными словами, данный шаблон делегирует создание объектов наследникам родительского класса. Это позволяет использовать в коде программы не конкретные классы, а манипулировать абстрактными объектами на более высоком уровне
 + 
 +**Цель** 
 +Определяет интерфейс для создания объекта, но оставляет подклассам решение о том, на основании какого класса создавать объект. Фабричный метод позволяет классу делегировать создание подклассов. Используется, когда: 
 + 
 +  * классу заранее неизвестно, объекты каких подклассов ему нужно создавать. 
 +  * класс спроектирован так, чтобы объекты, которые он создаёт, специфицировались подклассами. 
 +  * класс делегирует свои обязанности одному из нескольких вспомогательных подклассов, и планируется локализовать знание о том, какой класс принимает эти обязанности на себя.
  
   import Foundation   import Foundation
Строка 11: Строка 18:
   }   }
  
-protocol Clothes {+  protocol Clothes {
     var title: String { get }     var title: String { get }
     var type: ClothesType { get }     var type: ClothesType { get }
     var color: String { get }      var color: String { get } 
- 
     func putOn()     func putOn()
-}+  }
  
 class Hat: Clothes { class Hat: Clothes {
  • /sites/data/attic/fabrika.1713885097.txt.gz
  • Последнее изменение: 2024/04/23 15:11
  • oresh.dm