Last updated
Last updated
Abstract Factory не използва условен блок, за да създаде обектите, вместо това използва factory клас за всеки подклас. Abstract Factory клас, връща подкласа въз основа на factory клас на входа.
Нека да видим прилагането на този модел при създаването на компютърни конфигурациии.
Класа ще съдържа абстрактни методи за компонентите на всеки компонент
В тези класове само имплементираме абстрактните методи от родителския клас
Abstract Factory може да бъде интерфейс или абстрактен клас
Методът createComputer връща екземпляр на супер класа Computer. Сега фабричните класове ще реализират този интерфейс и ще върнат съответния подклас.
Tова е клас с метод който приема аргумент и връща обект. На този етап изпълнението трябва да стане ясно. Нека да напишем прост метод за тестване и да видим как да използваме абстрактната фабрика, за да получим инстанцията на подкласовете.
Моделът на дизайна на Abstract Factory осигурява подход към кода за интерфейс, а не към изпълнението.
Моделът Abstract Factory е "фабрика на фабрики" и може лесно да бъде разширен, за да побере повече продукти, например можем да добавим още един подклас лаптоп и фабрика LaptopFactory.
Моделът на Abstract Factory е здрав и избягва условната логика на фабричния модел.