前言
一、设计模式的分类
总体来说设计模式分为三大类:
创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
其实还有两类:并发型模式和线程池模式。
二、设计模式的六大原则
1.开闭原则:对扩展开放,对修改关闭。所以我们要尽可能面向接口编程,而不是面向实现编程。
2.里氏代换原则:里氏代换是对开闭原则的补充,实现开闭原则的关键是抽象编程,而子类和基类是实现具体化的步骤。所以里氏代换是对具体化的规范。
3.依赖倒转:针对接口编程,依赖于抽象而不依赖于具体。
4.迪米特法则(最少知道):每个类应该尽可能少的和其他类有联系,就是平时所说的低耦合,使得系统功能模块相对独立。
5.合成复用模式:尽可能使用组合模式,而不是使用集成。
接下来将学习大部分的设计模式!
正文
这次要学习的是工厂模式
工厂模式总共有三种: 简单工厂模式、抽象工厂方法模式、抽象工厂模式。
1.首先来说说简单工厂模式,先看UML图

工厂根据produce方法传进的type来确定生产的是什么车,但是返回的类型并不是具体的车,而是那些具体类的接口。
具体代码
2.工厂方法模式
一个抽象产品类,可以派生出多个具体产品类。
一个抽象工厂类,可以派生出多个具体工厂类。
每个具体工厂类只能创建一个具体产品类的实例。
UML图
具体代码
|
|
3.抽象工厂模式
抽象工厂模式是工厂方法模式的进一步升级, 其英文原话”Provide an interface for creating families of related or dependent objects without specifying their concrete classes”,翻译,“为创建一组相关或相互依赖的对象提供一个借口,无需指定它们的具体类”。抽象工厂模式通常是用于创一族产品,并且这族产品分不同的等级;不同的具体工厂类生产不同等级的一族产品。抽象工厂模式也有四种角色:抽象工厂、具体工厂、抽象产品和具体产品。
UML图,还是拿汽车生产举例。

具体代码
|
|
好了,工厂模式的三种形式就说到这了!