Everything about Abstract factory pattern
Software design pattern
The abstract factory pattern in software engineering is a design pattern that provides a way to create families of related objects without imposing their concrete classes, by encapsulating a group of individual factories that have a common theme without specifying their concrete classes. According to this pattern, a client software component creates a concrete implementation of the abstract factory and then uses the generic interface of the factory to create the concrete objects that are part of the family. The client does not know which concrete objects it receives from each of these internal factories, as it uses only the generic interfaces of their products. This pattern separates the details of implementation of a set of objects from their general usage and relies on object composition, as object creation is implemented in methods exposed in the factory interface. Wikipedia →
🧭 Start here: a 6-step reading path
- Read the overview: Abstract factory patternA 5-minute orientation
- Pick up a classic book: Objects first with JavaThe most-reprinted book on the subject
- Read the landmark paper: Example of Integration of Java GUI Desktop Technologies Using the Abstract Factory Pattern for Education PurposesCited 2 times
- Go sideways: Prototype patternA closely related topic
- Go sideways: Factory method patternA closely related topic
📖 Definitions
Noun A creational design pattern that decouples the object creation by providing a group of individual factories by defining an abstract factory class.
🗂️ The subject at a glance
🏆 Landmark papers (most cited)
Example of Integration of Java GUI Desktop Technologies Using the Abstract Factory Pattern for Education Purposes
ON THE VARIATION OF ABSTRACT FACTORY PATTERN
A Study on Model Transformation Mechanism Using Graph Comparison Algorithm, Abstract Factory Pattern and Bridge Pattern
NEURO-OPTIMIZED ABSTRACT FACTORY: MINIMIZING HOSPITAL WAITING TIMES THROUGH DESIGN PATTERNS AND OPTIMIZATION
📚 Books worth reading
Objects first with JavaDavid J. Barnes, Michael Kolling · 2002
Clean CodeRobert C. Martin · 2008
Design PatternsErich Gamma, John Vlissides · 1995
Language and Automata Theory and ApplicationsAdrian-Horia Dediu · 2012
Treaty Occupationay ToxicologySuelen Queiroz · 2010
Understanding object-oriented programming with JavaTimothy Budd · 1998
Learning JavaScript Design PatternAddy Osmani · 2012
SystemVerilog for VerificationChris Spear · 2006
Ranked by number of editions on Open Library, a rough measure of how lasting a book is.
🔗 Related topics
- Prototype pattern The prototype pattern is a creational design pattern in software development. It is used when the types of objects to create is determined by a prototypical…
- Factory method pattern In object-oriented programming, the factory method pattern is a design pattern that uses factory methods to deal with the problem of creating objects without…
- Composite pattern In software engineering, the composite pattern is a partitioning design pattern. The composite pattern describes a group of objects that are treated the…
- Decorator pattern In object-oriented programming, the decorator pattern is a design pattern that allows behavior to be added to an individual object dynamically, without…
- Interpreter pattern In computer programming, the interpreter pattern is a design pattern that specifies how to evaluate sentences in a language. The basic idea is to have…
- Factory (object-oriented programming) In object-oriented programming, a factory is an object for creating other objects; formally, it is a function or method that returns objects of a varying…
- Dependency injection In software engineering, dependency injection is a programming technique in which an object or function receives other objects or functions that it requires…
- Builder pattern The builder pattern is a design pattern that provides a flexible solution to various object creation problems in object-oriented programming. The builder…