设计模式学习(待续)

1、简单工厂模式。

    用一个单独的类(工厂)来封装实例的创建过程。

2、策略模式。

    定义算法家族,将他们封装起来,使得算法的变化不影响客户的使用。也就是说,策略模式封装了变化。在实践中,它几乎可以封装几乎任何类型的规则,只要在分析中发现要在不同时间应用不同的业务规则,就可以考虑应用这种模式来处理。

    在基本的策略模式中,选择的具体实现还是要由客户端实现,并转给策略对象context。但是通过将策略模式与简单工厂模式组合,选择的具体职责也可由context来完成,这样就可以最大化减轻客户端的职责了。(据说还可以利用反射机制为context减负,以最小化需求变更引起的代码更改)

3、单一职责原则(对一个类而言,仅有一个引起它变化的原因);

    开放-封闭原则(对于扩展开放,对于更改封闭,是面向对象的核心所在);

    依赖倒转原则(高层模块不用依赖于底层模块,两个都依赖于抽象;抽象不应依赖细节,细节应该依赖抽象。该原则是面向对象的标志,程序中所有依赖关系都终止于抽象类或者接口,那么就是面向对象的设计了;反之,就是面向过程的设计了);

    里氏代换原则(子类型必须能替换掉他们的父类型,只有这样,父类才能够被复用,子类才能在父类的基础上增加新的行为。该原则使得使用父类型的模块在无需修改的情况下就可以扩展,即“开放-封闭原则”成为可能);

4、装饰模式(有效地把类的核心功能和装饰功能区分开了,可以去除相关类中重复的装饰逻辑)。

5、代理模式(为其它对象提供一种代理以控制对这个对象的访问)。

6、工厂方法模式(相比与简单工厂模式,符合了开放-封闭原则,将选择判断从简单工厂的内部移到了客户端)。

7、原型模式。

锄禾日当午,不如coding苦~
原文地址:https://www.cnblogs.com/wangzhigang/p/3719150.html