设计模式总览

什么是设计模式

设计模式(Design Patterns)

                                  ——可复用面向对象软件的基础

设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。项目中合理的运用设计模式可以完美的解决很多问题,每种模式在现在中都有相应的原理来与之对应,每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的核心解决方案,这也是它能被广泛应用的原因。

设计模式的分类

创建型模式

共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。

结构型模式

共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。

行为型模式

共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。

设计模式的六大原则

1、开闭原则(Open Close Principle)

开闭原则就是说,对扩展开放,对修改关闭。从系统模块设计的角度讲,在设计一个模块的时候,应当使这个模块可以在不被修改的前提下被扩展。

2、里氏代换原则(Liskov Substitution Principle)

里氏代换原则就是说,任何基类可以出现的地方,子类一定可以出现。 里氏代换原则是对“开-闭”原则的补充,实现“开-闭”原则的关键步骤就是抽象化。而基类与子类的继承关系就是抽象化的具体实现,所以里氏代换原则是对实现抽象化的具体步骤的规范。

3、依赖倒转原则(Dependence Inversion Principle)

依赖倒转原则就是说,要依赖于抽象而不依赖于具体。依赖倒转是实现开闭原则这一目标的手段。

4、合成/聚合复用原则(Composite Reuse Principle)

合成/聚合复用原就是说,要尽量使用合成/聚合的方式,而不是使用继承关系达到复用的目的。

5、迪米特法则(最少知道原则)(Demeter Principle)

迪米特法则就是说,一个软件实体应当尽可能少的与其他实体发生相互作用。从系统模块设计的角度来说,就是在设计系统模块时,要增加内聚、降低耦合。这样在系统模块需要功能扩展时,会更容易地做到对修改关闭。

6、接口隔离原则(Interface Segregation Principle)

接口隔离原则就是说,应当为客户端提供尽可能小的单独的接口,而不是提供大的总接口。从一个客户类的角度讲,一个类对另一个类的依赖应当建立在最小的接口上。

接口隔离原则和迪米特法则都是对软件实体之间通信的限制。后者要求尽可能的限制通信的宽度和深度,而前者是尽可能的限制通信的宽度。

 

你可能感兴趣的:(设计模式)