设计模式-23种设计模式

1.简介

设计模式(Design Patterns)——可复用面向对象软件的基础目的

2.目的(五大性)

设计模式是为了让程序(软件)具有以下特性
代码重用性(相同功能代码,不用多次编写)
可读性(编码规范,便于他人阅读和理解)
可扩展性(当需要增加新的功能时非常方便,称为可维护性)
可靠性(增加新的功能后,对原来的功能没有影响)
使程序呈现 高内聚 、低耦合的特性

3.七大原则

3.1单一职责原则

3.2接口隔离原则(Interface Segregation Principle)

使用多个隔离的接口,比使用单个接口要好。还是一个降低类之间的耦合度的意思

3.3依赖倒转原则(Dependence Inversion Principle)

面向接口编程,依赖于抽象而不依赖于具体,使用接口或抽象类的目的是制定好规范,而不涉及任何具体操作

3.4里氏替换原则(Liskov Substitution Principle)
任何基类可以出现的地方,子类一定可以出现。 LSP是继承复用的基石,只有当衍生类可以替换掉基类,软件单位的功能不受到影响时,基类才能真正被复用,而衍生类也能够在基类的基础上增加新的行为。里氏代换原则是对“开-闭”原则的补充。实现“开-闭”原则的关键步骤就是抽象化。

3.5开闭原则(Open Close Principle)
编程中最基础、最重要的设计原则

对拓展开发(对提供方)、对修改关闭(对使用方)。用抽象构建框架,用实现拓展细节

3.6迪米特法则(最少知道原则)(Demeter Principle)
一个类对自己依赖的类知道的越少越好。对于被依赖的类不管多复杂,都尽量将逻辑封装在类的内部。对外除了提供public方法,不对外泄露任何信息。

迪米特法则还有个更简单的定义:只与直接的朋友通信

直接的朋友:每个对象都会与其他对象有耦合关系,只要两个对象之间有耦合关系,
我们就说这两个对象之间是朋友关系。耦合的方式很多,依赖,关联,组合,聚合
等。其中,我们称出现成员变量,方法参数,方法返回值中的类为直接的朋友,而
出现在局部变量中的类不是直接的朋友。也就是说,陌生的类最好不要以局部变量
的形式出现在类的内部。

3.7合成复用原则(Composite Reuse Principle)
尽量使用合成/聚合的方式,而不是使用继承

设计原则核心思想总结:
找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起。
针对接口编程,而不是针对实现编程。
为了交互对象之间的松耦合设计而努力

4.设计模式的分类

总体来说设计模式分为三大类:
创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
其实还有两类:并发型模式和线程池模式。

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