软件设计模式(Design pattern),又称设计模式,是一套被反复使用、多数人知晓的、通过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。(引用自百度百科)html
设计模式是软件设计思想的体现。编程
1、设计模式有如下原则:设计模式
1.单一职责原则(Single Responsibility Principle):ui
2.里氏代换原则,也叫里氏替换原则(Liskov Substitution Principle):spa
里氏代换原则中说,任何基类能够出现的地方,子类必定能够出现。 LSP是继承复用的基石,只有当衍生类能够替换掉基类,软件单位的功能不受到影响时,基类才能真正被复用,而衍生类也可以在基类的基础上增长新的行为。里氏代换原则是对“开-闭”原则的补充。实现“开-闭”原则的关键步骤就是抽象化。而基类与子类的继承关系就是抽象化的具体实现,因此里氏代换原则是对实现抽象化的具体步骤的规范 (引用自百度百科).net
3.依赖倒转原则(Dependence Inversion Principle):设计
这个是开闭原则的基础,具体内容:面向接口编程,依赖于抽象而不依赖于具体。写代码时用到具体类时,不与具体类交互,而与具体类的上层接口交互。代理
4.接口隔离原则(Interface Segregation Principle):server
每一个接口中不存在子类用不到却必须实现的方法,若是否则,就要将接口拆分。htm
使用多个隔离的接口,比使用单个接口(多个接口方法集合到一个的接口)要好。
5.迪米特法则,又称最少知识原则(Demeter Principle):
一个软件实体应当尽量的少与其余实体发生相互做用
6.合成复用原则:
少用继承,多用合成关系来实现;尽可能首先使用合成/聚合的方式,而不是使用继承。
7.开闭原则(Open Close Principle):
原文是:"Software entities should be open for extension,but closed for modification"。就是说模块应对扩展开放,而对修改关闭
2、设计模式场景有如下23种:
1.建立型:
共5种:Factory Method(工厂方法模式)、Abstract Factory(抽象工厂模式)、Builder(建造者模式)、Prototype(原型模式)、Singleton(单例模式)
2.结构型:
共七种:Adapter(适配器模式)、Decorator(装饰者模式)、Proxy(代理模式)、Façade(外观模式)、Bridge(桥接模式)、Composite(组合模式)、Flyweight(享元模式)
3.行为型:
共十一种:Interpreter(解释器模式)、Template Method(模版方法模式)、Chain of Responsibility(职责链模式)、Command(命令模式)、Iterator(迭代器模式)、Mediator(中介者模式)、Memento(备忘录模式)、Memento(备忘录模式)、Observer(观察者模式)、State(状体模式)、Strategy(策略模式)、Visitor(访问者模式)
参考: