auto commit
This commit is contained in:
parent
5a242c609d
commit
1ed4ef6e7d
|
@ -417,13 +417,13 @@ public class StartbuzzCoffee {
|
|||
|
||||
**1. 问题描述**
|
||||
|
||||
有不同的 Pizza,根据不同的情况用不同的子类实例化一个 Pizza 对象。
|
||||
Pizza 类有很多子类,要求根据不同的情况用不同的子类实例化一个 Pizza 对象。
|
||||
|
||||
**2. 定义**
|
||||
|
||||
简单工厂不是设计模式,更像是一种编程习惯。在实例化一个超类的对象时,可以用它的所有子类来进行实例化,要根据具体情况来决定使用哪个子类。在这种情况下,把实例化的操作放到简单工厂来中,让简单工厂来决定应该用哪个子类来实例化。
|
||||
简单工厂不是设计模式,更像是一种编程习惯。它把实例化的操作单独放到一个类中,这个类就成为简单工厂类,让简单工厂类来决定应该用哪个子类来实例化。
|
||||
|
||||
这样做能把客户类和具体子类的实现解耦,客户类不再需要知道有哪些子类以及实例化哪个子类。因为客户类往往有多个,如果不使用简单工厂,所有的客户类都要知道所有子类的细节。一旦子类发生改变,例如增加子类,那么所有的客户类都要发生改变。
|
||||
这样做能把客户类和具体子类的实现解耦,客户类不再需要知道有哪些子类以及应当实例化哪个子类。因为客户类往往有多个,如果不使用简单工厂,所有的客户类都要知道所有子类的细节。而且一旦子类发生改变,例如增加子类,那么所有的客户类都要进行修改。
|
||||
|
||||
<div align="center"> <img src="../pics//ec2f0a65-82ad-4ab9-940f-70ee9f6992cc.png"/> </div><br>
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user