пользователей: 30398
предметов: 12406
вопросов: 234839
Конспект-online
РЕГИСТРАЦИЯ ЭКСКУРСИЯ

Порождающие паттерны. Назначение, обобщенные свойства, применение. Пример реализации.

Порождающие паттерны проектирования предназначены для создания объектов, позволяя системе оставаться независимой как от самого процесса порождения, так и от типов порождаемых объектов.

Эти шаблоны оказываются важны, когда система больше зависит от композиции объектов, чем от наследования классов. Получается так, что основной упор делается не на жестком кодировании фиксированного набора поведений, а на определении небольшого набора фундаментальных поведений, с помощью композиции которых можно получать любое число более сложных. Таким образом, для создания объектов с конкретным поведением требуется нечто большее, чем простое инстанцирование класса. (создание экземпляра класса. В отличие от слова «создание», применяется не к объекту, а к классу. То есть, говорят: (в виртуальной среде) создать экземпляр класса, или другими словами инстанцировать класс. Порождающие шаблоны используют полиморфное инстанцирование.)

Порождающие шаблоны инкапсулируют знания о конкретных классах, которые применяются в системе. Они скрывают детали того, как эти классы создаются и стыкуются. Единственная информация об объектах, известная системе, — это их интерфейсы, определенные с помощью абстрактных классов. Следовательно, порождающие шаблоны обеспечивают большую гибкость при решении вопроса о том, что создается, кто это создает, как и когда. Можно собрать систему из «готовых» объектов с самой различной структурой и функциональностью статически (на этапе компиляции) или динамически (во время выполнения).

Порождающие шаблоны: · абстрактная фабрика (abstract factory); · строитель (builder); · фабричный метод (factory method); · ленивая инициализация (lazy initialization); · объектный пул (object pool); · прототип (prototype); · одиночка (singleton).

· пул одиночек (Multiton) Пример создания и работы нового объекта и работы в ЯП Java:

· // Создание экземпляра класса ArrayList с именем list

· ArrayList list = new ArrayList();

· // Добавление экземпляров класса Integer в объект list

· list.add(new Integer(1));

· list.add(new Integer(2));

· list.add(new Integer(3));

Подразумевается, что класс ArrayList уже описан в программном коде и его описание содержит определение для конструктора класса и метода add.

 


06.01.2018; 19:39
хиты: 150
рейтинг:0
для добавления комментариев необходимо авторизироваться.
  Copyright © 2013-2024. All Rights Reserved. помощь