Intermediate Topic 22 of 50 Software Engineering
Factory Pattern
Delegating object creation to a dedicated method.
How it works
The factory pattern moves object creation into a dedicated method or class so that client code does not need to know which concrete class it is instantiating. A simple factory is a function that returns objects based on input; the factory method pattern lets subclasses decide the type; the abstract factory creates families of related objects. Clients depend on an interface, which makes it easy to add new types.
Step-by-step walkthrough
- The client asks the factory for a product, for example createShape("circle").
- The factory decides which class to instantiate.
- It returns a Circle.
- Another request could return a Square.
- The client depends on the interface, not on concrete classes.
Where it is used
Creating parsers for different file formats, database drivers for different vendors, UI widgets for different platforms and payment processors based on configuration use factories.
Common pitfall
Giant switch statements inside factories grow with every new type, violating open-closed, so consider registration maps or plug-ins. Over-using factories for trivial objects adds indirection. Hiding construction can obscure required parameters. Use it when creation logic varies or is complex, and keep the returned interface small.
Where it fits in the course
Factory Pattern is topic 22 of 50 in Software Engineering, rated Intermediate. It follows Singleton Pattern. The next topic is Observer Pattern.
Practice and explore
- Open the interactive lesson, with a mini quiz.
- Take the Software Engineering quiz.
How to study this topic
- Read the explanation above and restate the definition in your own words.
- Open the interactive lesson and answer its mini quiz.
- Read the common pitfall, then write a short example that avoids it.
- Check your understanding in the Software Engineering quiz, and revisit the topic if you miss a question.
Frequently asked questions
What is Factory Pattern?
Where do people use Factory Pattern?
What is the most common mistake with Factory Pattern?
What should I learn before this topic?
How can I practice it?
Is Factory Pattern hard to learn?
How long does it take to learn Factory Pattern?
Which topics are related to Factory Pattern?
What should I study after Factory Pattern?
Related topics
- Singleton Pattern (Software Engineering)
- Observer Pattern (Software Engineering)
- Design Patterns (Software Engineering)
- Strategy Pattern (Software Engineering)
- Producer-Consumer Pattern (Concurrency & Parallelism)
- Saga Pattern (Distributed Systems & Cloud)
- Pattern Matching (Languages & Compilers)