definition:
Provide an interface for creating families of related or dependent objects without specifying their concrete classes.
提供一个创建一系列相关活相互依赖对象的接口,而无需指定他们具体的类。(G4)
Frequency of use: high
UML图:
participants
The classes and/or objects participating in this pattern are:
- 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
示例代码