diff --git a/notes/设计模式.md b/notes/设计模式.md index 49e153d9..5d5d9619 100644 --- a/notes/设计模式.md +++ b/notes/设计模式.md @@ -417,13 +417,13 @@ public class StartbuzzCoffee { **1. 问题描述** -有不同的 Pizza,根据不同的情况用不同的子类实例化一个 Pizza 对象。 +Pizza 类有很多子类,要求根据不同的情况用不同的子类实例化一个 Pizza 对象。 **2. 定义** -简单工厂不是设计模式,更像是一种编程习惯。在实例化一个超类的对象时,可以用它的所有子类来进行实例化,要根据具体情况来决定使用哪个子类。在这种情况下,把实例化的操作放到简单工厂来中,让简单工厂来决定应该用哪个子类来实例化。 +简单工厂不是设计模式,更像是一种编程习惯。它把实例化的操作单独放到一个类中,这个类就成为简单工厂类,让简单工厂类来决定应该用哪个子类来实例化。 -这样做能把客户类和具体子类的实现解耦,客户类不再需要知道有哪些子类以及实例化哪个子类。因为客户类往往有多个,如果不使用简单工厂,所有的客户类都要知道所有子类的细节。一旦子类发生改变,例如增加子类,那么所有的客户类都要发生改变。 +这样做能把客户类和具体子类的实现解耦,客户类不再需要知道有哪些子类以及应当实例化哪个子类。因为客户类往往有多个,如果不使用简单工厂,所有的客户类都要知道所有子类的细节。而且一旦子类发生改变,例如增加子类,那么所有的客户类都要进行修改。