Abstract Factory

E173605

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

Try in SPARQL Jump to: Surface forms Statements Referenced by

All labels observed (3)

Label Occurrences
Abstract Factory pattern 4
Abstract Factory canonical 2
AbstractFactory 1

Statements (53)

Predicate Object
instanceOf creational design pattern
design pattern
alsoKnownAs Kit
applicableWhen a family of related product objects is designed to be used together
a system should be configured with one of multiple families of products
a system should be independent of how its products are created
you want to provide a library of products without exposing their implementations
belongsTo Design Patterns: Elements of Reusable Object-Oriented Software
surface form: Gang of Four design patterns
commonUseCase GUI toolkits with multiple look-and-feel themes
cross-platform UI libraries
persistence layers with multiple database vendors
consequence can increase number of classes in a system
can make supporting new kinds of products difficult
makes exchanging product families easy
promotes consistency among products
definedIn Design Patterns: Elements of Reusable Object-Oriented Software
definesRoleOf AbstractFactory creates abstract products
Client uses only abstract interfaces
ConcreteFactory creates concrete products
encourages use of object composition over class inheritance for product families
hasCategory creational pattern
hasUMLElement AbstractFactory interface or abstract class
AbstractProduct interfaces
Client class
ConcreteFactory classes
ConcreteProduct classes
helpsWith configuring systems with multiple families of products
ensuring that products from the same family are used together
isolating concrete classes
supporting product variants
introducedBy Erich Gamma
John Vlissides
Ralph Johnson NERFINISHED
Richard Helm
languageParadigm object-oriented programming
oftenImplementedWith Factory Method
primaryIntent provide an interface for creating families of related or dependent objects without specifying their concrete classes
relatedTo Builder
Factory Method
Prototype
supports creation of product families
encapsulation of object creation
enforcing consistency among related products
programming to interfaces not implementations
typicalParticipants Abstract Factory self-linksurface differs
surface form: AbstractFactory

AbstractProduct
Client
ConcreteFactory
ConcreteProduct
typicalStructureElement concrete factories implementing the factory interface
concrete products implementing product interfaces
factory interface with multiple creation methods
product interfaces representing abstract products

Referenced by (7)

Full triples — surface form annotated when it differs from this entity's canonical label.

Factory Method relatedTo Abstract Factory
this entity surface form: Abstract Factory pattern
Abstract Factory typicalParticipants Abstract Factory self-linksurface differs
this entity surface form: AbstractFactory
Builder relatedTo Abstract Factory
this entity surface form: Abstract Factory pattern
Prototype relatedTo Abstract Factory
Bridge relatedTo Abstract Factory
this entity surface form: Abstract Factory pattern
Facade canCollaborateWith Abstract Factory
this entity surface form: Abstract Factory pattern