Запитання з тегом «factory-method»

1
Яка різниця між фабричним візерунком та абстрактним заводом?
Нарешті почавши серйозно намагатися вивчити деякі основні зразки (дуже пізно в кар’єрі, але це вже інша історія), я намагаюся обернути голову навколо відмінностей між «Фабричним зразком» та «Фабрикою абстрактних». Які ключові відмінності між цими двома моделями? Я розумію, що Фабричний метод створює об'єкти шляхом успадкування, а абстрактний Factory робить це …

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
Множини, що будують одну реалізацію. DI безнадійно? Використовувати локатор обслуговування?
Скажімо, у нас є 1001 клієнт, який будує свої залежності безпосередньо, а не приймає ін'єкції. Переобладнання 1001 не є варіантом на думку нашого начальника. Нам фактично навіть не дозволений доступ до їх джерела, лише файли класу. Ми повинні зробити "модернізацію" системи, через яку проходять ці 1001 клієнт. Ми можемо рефакторити …

7
Чи порушує заводський зразок відкритий / закритий принцип?
Чому цей ShapeFactory використовує умовні висловлювання, щоб визначити, який об'єкт інстанціювати. Чи не потрібно нам змінювати ShapeFactory, якщо ми хочемо додати інші класи в майбутньому? Чому це не порушує принципу відкритого закритого типу?

3
Уникаючи конструкторів з багатьма аргументами
Тож у мене є завод, який створює об’єкти різних класів. Усі можливі класи походять від абстрактного предка. Фабрика має файл конфігурації (синтаксис JSON) і вирішує, який клас створити, залежно від конфігурації користувача. Щоб досягти цього, фабрика використовує boost :: property_tree для JSON-розбору. Він проходить птахом і вирішує, який конкретний об’єкт …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.