Примеры реального мира Шаблона "фабричный метод"

Я просто считал Метод фабрики. Я понимаю, что это позволяет делегировать инстанцирование к подклассам. Но я не мог понять возможные применения в реальном сценарии.

Может любой давать один типичный пример, показывающий, как Шаблон "фабричный метод" может использоваться так, чтобы я мог коснуться того, что я считал.

Проблемный оператор, для которого шаблон "фабричный метод" является лучшим решением, был бы достаточен для прояснения.

26
задан Ravi 11 December 2017 в 06:54
поделиться

4 ответа

Класс, реализующий фабричный шаблон проектирования, работает как мост между несколькими классами. Рассмотрим пример использования нескольких серверов баз данных, таких как SQL Server и Oracle. Если вы разрабатываете приложение, использующее базу данных SQL Server в качестве серверной части, но в будущем вам потребуется изменить серверную базу данных на oracle, вам необходимо будет изменить весь свой код, если вы не написали свой код в соответствии с заводским шаблоном проектирования.

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

51
ответ дан 28 November 2019 в 06:32
поделиться

Одним из примеров из библиотеки базовых классов .NET (BCL) является Control.CreateControlsInstance , который используется многими другими членами класса Control (Windows Forms).

Вы можете переопределить этот защищенный метод, чтобы предоставить свой собственный набор элементов управления, например когда вы реализуете настраиваемый элемент управления.

2
ответ дан 28 November 2019 в 06:32
поделиться

Из API, который я разрабатываю прямо сейчас:

WebGalleryFactory factory = WebGalleryFactory.newInstance (WebGalleryType.PICASA);
WebAlbum album = factory.createAlbum (title, description);

В этом примере я использую фабричный метод для создания абстрактной фабрики определенного типа (PICASA в примере ).

Эти два шаблона часто используются вместе.

3
ответ дан 28 November 2019 в 06:32
поделиться

Zend_Db использует его в своем классе Zend_Db_Adapter , чтобы разрешить создание различных типов объектов базы данных на основе настроек базы данных, передаваемых из объекта конфигурации.

3
ответ дан 28 November 2019 в 06:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: