/**

* 设计模式四要素:

* 1. 模式名称

* 2. 问题

* 3. 解决方案

* 4. 效果

* 设计模式分为三种类型:

* 1. 创建型模式:

* 1.1 简单工厂模式

* 1.2 工厂模式

* 1.3 抽象工厂模式

* 1.4 单例模式

* 1.5 原型模式

* 1.6 建造者模式

* 2. 结构型模式:

* 2.1 适配器模式

* 2.2 桥接模式

* 2.3 装饰模式

* 2.4 组合模式

* 2.5 外观模式

* 2.6 享元模式

* 2.7 代理模式

* 3. 行为型模式:

* 3.1 策略模式

* 3.2 观察者模式

* 3.3 命令模式

* 3.4 状态模式

* 3.5 职责链模式

* 3.6 模板方法模式

* 3.7 备忘录模式

* 3.8 中介者模式

* 3.9 访问者模式 (略)

* 3.10 解释器模式 (略)

* 3.11 迭代器模式 (略)

*

* 设计模式遵循的原则:

* 即面向对象设计的5个基本原则:

* 1. 开闭原则:

* 就是说对模块扩展的时候是开放的,

* 对模块修改的时候是关闭的。

* 2. 单一职责原则:

* 就是说,就一个类而言,应该仅有

* 一个引起它变化的原因。

* 它的核心是实现代码的高内聚、低耦合。

* 所谓高内聚:

* 是指一个软件模块是由相关性很强

* 代码组成,只负责一下任务。

* 所谓低耦合:

* 是指一个软件模块与模块之间互连

* 的程度比较低。也就是说每个模块

* 的功能尽可能是独立的。而模块之

* 间连接的接口,尽可能的少并且简

* 单。

* 从高内聚和低耦合的概念上,我们可以

* 看出,在充分实现高内聚的过程中,低

* 耦合也基本上实现了。

*   3. 接口隔离原则:

*   就是说,一个接口代表一角色,不应当

*   将不同的角色都交给一个接口。

*   4. 里氏倒转原则:

*   是指如果调用的是父类的话,那么换成

*   子类也完全可以运行。

*   5. 依赖倒转原则:

*   1. 高层次的模块不应该依赖于低层次的

*     模块,它们都应该依赖于抽象。

*   2. 抽象不应该依赖于具体,具体应该依

*     赖于抽象。

*       3. 要针对接口编程,而不是针对实现编

*          程。

*       4. 传递参数或者在组合聚合关系中,尽

*          量引用层次高的类。

*

*/