Home  >  Article  >  Java  >  JAVA design patterns: Summary and differences between simple factory, factory method, and abstract factory.

JAVA design patterns: Summary and differences between simple factory, factory method, and abstract factory.

高洛峰
高洛峰Original
2016-12-15 14:26:341571browse

Simple factory, factory method, and abstract factory are all creational patterns in design patterns. Its main function is to help us extract the instantiation part of the object, optimize the system architecture, and enhance the scalability of the system.

This article is a summary of my study of these three modes and my understanding of the differences between them.

Simple Factory

Factory classes in the simple factory pattern generally use static methods to return different object instances based on the different parameters they receive.

It cannot be expanded without modifying the code.

JAVA design patterns: Summary and differences between simple factory, factory method, and abstract factory.

Factory method

The factory method provides a factory class for each product. Different product instances are created through different factory instances.

In the same hierarchical structure, any product can be added.

JAVA design patterns: Summary and differences between simple factory, factory method, and abstract factory.

Abstract Factory

Abstract factory responds to the concept of product family. For example, each automobile company may want to produce cars, trucks, and buses at the same time, so each factory must have a method for creating cars, trucks, and buses.

It was born in response to the concept of product family. It is easy to add new product lines, but it is impossible to add new products.

JAVA design patterns: Summary and differences between simple factory, factory method, and abstract factory.

Summary

★In the factory pattern, the important thing is the factory class, not the product class. Product classes can be in many forms, including multiple levels of inheritance or a single class. But it should be clear that the factory mode interface will only return one type of instance. This needs to be paid attention to when designing product classes. It is best to have a parent class or a jointly implemented interface.

★Using the factory pattern, the returned instance must be created by the factory and not obtained from other objects.

★The instances returned by the factory pattern do not need to be newly created, and it is also possible to return instances created by the factory.

Differences

Simple Factory: Used to produce any product in the same level structure. (There is nothing you can do about adding new products)

Factory mode: used to produce fixed products in the same hierarchical structure. (Supports adding any product)
Abstract factory: used to produce all products of different product families. (There is nothing you can do about adding new products; adding product families is supported)

The above three factory methods have different levels of support in the two directions of hierarchical structure and product family. So consider which method should be used based on the situation.


More JAVA design patterns: Summary and differences of simple factory, factory method, and abstract factory. For related articles, please pay attention to the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn