设计模式---设计原则

设计模式概述

模式分类

设计原则

模式分类

设计模式一般分为三大类:

  • 创建型模式:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式
  • 结构型模式:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式
  • 行为型模式:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式
  • 除此划分方式外,也存在以其它不同角度的划分

设计原则

开闭原则(OCP)
  • Open For Extension Closed For Modification Principle,简称开闭原则。对扩展开放,对修改关闭,需要扩展时对已有功能代码进行扩展,不修改原有代码。
  • 开闭原则是面向对象的核心,是最基础、最重要的设计原则。
  • 开发过程中,应该把可能会频繁变动的部分抽象出来,当需要变动时,只需要去实现抽象即可,也就是面向抽象编程。
单一职责原则(SRP)
  • Single Responsibility Principle,单一职责原则,对类来说,类的职责应该是单一的,一个类只能对外提供一种功能,单一职责相当于降低了各种职责的耦合度。
  • 不要存在多于一个导致类变更的原因,每个类应该实现单一的职责,否则任一职责变化可能会影响类其它职责。
里氏替换原则(LSP)
  • Liskov Substitution Principle,里氏代换原则,任何地方出现的抽象类,都可以使用该抽象类的实现类来代替。
  • 类似于C++中类型兼容性原则,所有基类对象都可以用派生类对象代替。
  • LSP是继承复用的基石,只有当衍生类可以替换掉基类,软件单位的功能不受到影响时,基类才能真正被复用,而衍生类也能够在基类的基础上增加新的行为。
  • 派生类对基类的方法尽量不要重写和重载。因为基类是基本结构,通过规范接口与外界交互,派生类不应该随便破坏它。
依赖倒置原则(DIP)
  • Dependence Inversion Principle,依赖倒置原则。是开闭原则的基础,抽象不应该依赖于细节,细节应该依赖于抽象。
  • 依赖倒置原则是面向对象编程的标志,在具体软件设计时,上层模块不应该依赖于底层模块,底层模块更不应该依赖上层模块,而是上层模块和底层模块都向中间靠拢,共同依赖于二者中间的抽象接口层。整个软件程序设计的依赖关系应该终止于抽象接口层,上层和底层互不关心,甚至使用什么编程语言都不关心。
  • 抽象接口层提供一个标准或者协议,它对上提供访问的接口,对下提供实现的标准,抽象接口层本身不执行任何操作,具体的功能由它的实现去完成。
接口隔离原则(ISP)
  • Interface Segegation Principle,接口隔离原则。
  • 一个接口对外只提供一种功能,不同功能应该通过不同的接口提供,而不是把多种功能都封装到一个接口中。
迪米特法则(LOD)
  • Law of Demeter,迪米特法则,也叫做最少知道原则(The Least Knowledge Principle)。
  • 一个类对所依赖的类不需要知道太多信息,无论被依赖的类多么复杂,都应该将逻辑封装在方法的内部,通过public方法提供给外部。这样当被依赖的类变化时,才能最小的影响该类。
合成复用原则(CARP)
  • Composite/Aggregate Reuse Principle,合成复用原则。优先使用对象组合而不是继承原则。
  • 使用继承的时候,基类变化可能会影响派生类,而使用组合/聚合可以降低这种依赖关系。
  • 组合/聚合降低了类与类之间的耦合性,一个类的变化对另一个类的影响相对较小,使用继承时,必须遵守里氏替换原则。

起始

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值