The disadvantages of the abstract factory model are: 1. Adding a new product level structure is very complicated; 2. The abstract factory and all specific factory classes need to be modified, and the support for the "opening and closing principle" is tilted.
Disadvantages:
It is very complicated to add a new product level structure, and it is necessary to modify the abstract factory and all specific factory classes. The support for "principle" is tilted.
Applicable scenarios
When the objects that need to be created are a series of interrelated or interdependent product families, the abstract factory pattern can be used. To put it more clearly, in an inheritance system, if there are multiple hierarchical structures (that is, there are multiple abstract classes), and there are certain associations or constraints between the implementation classes belonging to each hierarchical structure, then You can use the abstract factory pattern. If there are no relationships or constraints between implementation classes in each hierarchical structure, it is more appropriate to use multiple independent factories to create products.
Summary
Whether it is a simple factory pattern, a factory method pattern, or an abstract factory pattern, they all belong to the factory pattern and are very similar in form and characteristics. Their ultimate goals are For decoupling. When using it, we don't have to worry about whether this pattern is a factory method pattern or an abstract factory pattern, because the evolution between them is often confusing. Often you will find that when new requirements come and a new method is added to the factory method pattern that is clearly used, it becomes the abstract factory pattern because the products in the class constitute product families in different hierarchical structures. For the abstract factory pattern, when one method is reduced so that the provided products no longer constitute a product family, it evolves into the factory method pattern.
So, when using the factory pattern, you only need to care about whether the purpose of reducing coupling is achieved.
The above is the detailed content of What are the disadvantages of the abstract factory pattern?. For more information, please follow other related articles on the PHP Chinese website!