/csharp-abstract-factory-pattern

csharp abstract factory design pattern

Primary LanguageC#

C# Abstract Factory

The Abstract Factory design pattern provides an interface for creating families of related or dependent objects without specifying their concrete classes.

Frequency of use: high

Participants:

The classes and objects participating in this pattern include:

  • AbstractFactory (ContinentFactory):
    declares an interface for operations that create abstract products
  • ConcreteFactory (AfricaFactory, AmericaFactory):
    implements the operations to create concrete product objects
  • AbstractProduct (Herbivore, Carnivore):
    declares an interface for a type of product object
  • Product (Wildebeest, Lion, Bison, Wolf):
    -- defines a product object to be created by the corresponding concrete factory
    -- implements the AbstractProduct interface
  • Client (AnimalWorld):
    uses interfaces declared by AbstractFactory and AbstractProduct classes