针对接口编程,可以隔离掉以后系统可能发生的一大堆改变。因为,如果代码是针对接口编写,那么通过多态,它可以与新类实现该接口。
工厂方法用来处理对象的创建,并将这样的行为封装在子类中。这样,客户程序中关于超类的代码和子类对象创建代码解耦了。
工厂方法模式通过让子类决定该创建的对象是什么,来达到将对象创建的过程封装的目的。
工厂方法模式:定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类。
设计原则:依赖抽象,不要依赖具体类
以下的指导方针,能帮你避免在OO设计中违反依赖倒转原则
1.变量不可以持有具体类的引用(不用new,可以改成用工厂类的做法来避开这样的做法)
2.不要让类派生自具体类(如果派生自具体类,你就会依赖具体类。请派生自一个抽象(抽象类或接口))
3.不要覆盖基类中已经实现的方法
抽象工厂模式:提供了一个接口,用于创建相关或依赖对象的家族,而不需要明确制定具体类。