使用new是最大的耦合
使用反射可以解耦,但这里先不使用。
除了使用new操作符之外,还有更多制造对象的方法。而实例化这个活动不应该总是公开地进行,也会认识到初始化经常造成”耦合”问题。
工厂模式:工厂方法和抽象工厂
简单工厂方法:(并不是一种模式)
-负责创建对象
-使用的方法:继承
-可以把你的客户代码从需要实例化的具体类中解耦
工厂方法:
一、依赖倒置原则(Dependency Inversion Principle):
设计原则:要依赖抽象,不要依赖具体类。
好比:PizzaStore是“高层组件”,而比萨实现是“底层组件”,PizzaStore依赖这些具体比萨类。
二、指导方针:
1)变量不可以持有具体类的引用
2)不要让类派生自具体类
3)不要覆盖基类中已实现的方法
总结:
1)工厂方法模式对每一个产品都有相应的工厂
2)使用的方法:继承
抽象工厂
-需要创建产品家族和想让制造的相关产品集合起来时
-方法:通过对象组合