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.

All labels observed (4)

Label Occurrences
Abstract Factory pattern 7
Abstract Factory canonical 2
AbstractFactory 2

How this entity was disambiguated

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 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 ⓘ
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 AbstractFactory ⓘ
linked to: Abstract Factory

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 ⓘ

How these facts were elicited

Referenced by (12)

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

Factory Method → relatedTo → Abstract Factory pattern ⓘ
linked to: Abstract Factory
Abstract Factory → typicalParticipants → AbstractFactory ⓘ
linked to: Abstract Factory
Builder → relatedTo → Abstract Factory pattern ⓘ
linked to: Abstract Factory
Prototype → relatedTo → Abstract Factory ⓘ
Bridge → relatedTo → Abstract Factory pattern ⓘ
linked to: Abstract Factory
Facade → canCollaborateWith → Abstract Factory pattern ⓘ
linked to: Abstract Factory
ConcreteFactory → participatesIn → Abstract Factory pattern ⓘ
linked to: Abstract Factory
ConcreteFactory → implements → AbstractFactory interface ⓘ
linked to: Abstract Factory
ConcreteFactory → collaboratesWith → AbstractFactory ⓘ
linked to: Abstract Factory
Singleton → relatedTo → Abstract Factory pattern ⓘ
linked to: Abstract Factory
Gang of Four design pattern → hasExample → Abstract Factory pattern ⓘ
linked to: Abstract Factory