What is the need for Abstract Factory Pattern in C#?Abstract
Factory Pattern has a higher level of abstraction when compared to the
Factory Method Pattern. You will be using Abstract Factory Pattern when
you should return one among several set of classes that are related.
To illustrate on it, consider the following scenario: Your application has a base class called Garden which contains multiple instances of Plant class to show what all plants are planted in the Garden. Garden class is further drilled down into different derived classes namely VegOnlyGarden, FruitsOnlyGarden, MixedGarden and so on. Plant class can have different derived classes to denote different plants like Broccoli, Peas, Pomogranate and so on. Now each derived class of Garden will have a different set of Plant instances within it. For example, FruitsOnlyGarden will contain Plants derived classes namely Pomogranate, Apple, Mango. Similarly VegOnlyGarden will contain Plants derived classes namely Broccoli, Peas, Spinach. Deciding which derived class of Garden has to be instantiated (which in turn decides which all derived classes of Plant have to be instantiated) is done by a method implementing Abstract Factory Pattern. You are also
permitted to use Simple Factory Pattern inside Abstract Factory Pattern.
In this scenario, deciding which all derived classes of Plant have to
be created inside the instance of Garden can be done using Simple Factory
Pattern.
|