Вопросы с тегом «factory-method»

40
В чем разница между фабричным шаблоном и абстрактной фабрикой?

Наконец, серьезно начав пытаться выучить некоторые базовые паттерны (очень поздно в карьере, но это уже другая история), я пытаюсь разобраться в различиях между Фабричным паттерном и Абстрактной Фабрикой. Каковы основные различия между этими двумя моделями? Я понимаю, что Фабричный метод создает...

24
Статическая фабрика против фабрики как синглтон

В некоторых моих кодах у меня есть статическая фабрика, похожая на эту: public class SomeFactory { // Static class private SomeFactory() {...} public static Foo createFoo() {...} public static Foo createFooerFoo() {...} } Во время обзора кода было предложено, чтобы это был одиночный и введенный....

24
Является ли это анти-паттерном, если свойство класса создает и возвращает новый экземпляр класса?

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

15
Я должен был использовать фабричный метод вместо конструктора. Могу ли я изменить это и при этом быть обратно совместимым?

Проблема Допустим, у меня есть класс с именем, DataSourceкоторый предоставляет ReadDataметод (и, возможно, другие, но давайте будем проще) для чтения данных из .mdbфайла: var source = new DataSource("myFile.mdb"); var data = source.ReadData(); Несколько лет спустя я решил, что хочу иметь...

14
Заводской паттерн нарушает принцип Open / Closed?

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

14
Многие строят одну реализацию. Я безнадежен? Использовать сервисный локатор?

Скажем, у нас есть 1001 клиент, который строит свои зависимости напрямую, а не принимает инъекции. Рефакторинг 1001 не вариант по мнению нашего босса. На самом деле нам даже не разрешен доступ к их источнику, только к файлам классов. Мы должны «модернизировать» систему, через которую проходят эти...

10
Избегайте конструкторов со многими аргументами

Так что у меня есть фабрика, которая создает объекты разных классов. Все возможные классы происходят от абстрактного предка. Фабрика имеет файл конфигурации (синтаксис JSON) и решает, какой класс создать, в зависимости от конфигурации пользователя. Чтобы добиться этого, фабрика использует boost ::...