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

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

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

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

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

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

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

3
Избегайте конструкторов со многими аргументами
Так что у меня есть фабрика, которая создает объекты разных классов. Все возможные классы происходят от абстрактного предка. Фабрика имеет файл конфигурации (синтаксис JSON) и решает, какой класс создать, в зависимости от конфигурации пользователя. Чтобы добиться этого, фабрика использует boost :: property_tree для JSON-анализа. Он идет по дереву и решает, …
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.