1.简单工厂模式:
简单工厂模式的工厂类一般是使用静态方法(也可以通过组合简单工厂实例 来 获取产品),通过接收的参数的不同来返回不同的对象实例。
2.工厂方法
工厂方法必须返回一个产品
工厂方法是针对每一种产品提供一个工厂类。通过不同的工厂实例来创建不同的产品实例。
在同一等级结构中,支持增加任意产品。
3 抽象工厂
抽象工厂是应对产品族概念的。比如说,每个汽车公司可能要同时生产轿车,货车,客车,那么每一个工厂都要有创建轿车,货车和客车的方法。
工厂方法与抽象工厂对比:
就现在的理解程度而言,没觉得这两个模式有什么大的区别,抽象工厂可以产生很多产品,而工厂方法只产生某个产品。
最终使用大概都是 用基类工厂引用具体工厂然后产生产品。
在这里引出一个设计原则
设计原则 :要依赖抽象,不要依赖具体类。
依赖倒置的思考方式: 先从低端的具体类想,如何得到具体类,这时候依赖抽象, 顶级用这个抽象。
知道方针:
1.变量不可持有具体类的引用(要用具体类基类持有)
2. 不要让类派生具体类 (如果派生具体类,就会依赖这个具体类)
3. 不要覆盖类中已实现的方法