设计模式的一些概念----设计模式学习笔记

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

一.设计模式的六大原则

    1.单一职责原则

  • 定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责,这样对某个类类的改变只会是一种原因导致的。

    2.里氏替换原则

  • 定义一: 如果堆每一个类型为T1的对象o1,都有类型为T2的对象o2,使得以T1定义的所有程序P在所有的对象o1都代换成o2是,程序P的行为没有发生变换,那么类型T2是类型T1的子类型。

  • 定义二:所有引用基类的地方必须能透明地使用其子类对象

  • 定义三:子类可以扩展父类的功能,但不能改变父类原有的功能

  • 通俗而言:父类中凡是已经实现好的方法(除了抽象方法基本都已实现好),实际上是在设定一系列的规范和契约,虽然它不强制要求所有的子类必须遵循这些契约,但是如果子类对这些方法任意重写,就会对整个继承体系造成破坏。所以应当尽量避免。

建议:当子类方法重载父类方法时,方法的前置条件(即方法的形参)要比父类方法的输入参数更宽松。(待研究)

    3.依赖倒置原则

  • 定义:高层模块不应一类底层模块,二者都应依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。

  • 通俗来讲:说的就是要面向接口编程。

  • 建议一:低层模块尽量都要有抽象类或接口,或者两者都有

  • 建议二:变量的声明类型尽量是抽象类或者接口。比如Map map=new HashMap();

  • 建议三:使用继承时要遵循里氏替换原则。

    4.接口隔离原则

  •     定义:客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。

  • 建议一:接口尽量小(因为接口太臃肿的话可能导致实现类需要实现太多没有的方法),但要有限度。

  • 建议二:为依赖接口的类定制服务,只暴露给调用的类它需要的方法,它不需要的方法要尽量隐藏起来。

  • 建议三:提高内聚,减小对外交互。使接口用最少的方法区完成最多的事情。

    5.迪米特法则

  • 定义:一个对象应该对其他对象保持最少的了解

  • 最少知道原则,要把不需让其他类知道的方法隐藏起来

    6.开放封闭原则

  • 定义:一个软件实体、模块、函数应该对扩展开放,对修改关闭。

二.六大原则总结

  • 单一职责告诉我们每个类负责的东西要与其他类耦合度低

  • 迪米特法则告诉我们要降低耦合,隐藏不需被别人知道的方法

  • 里氏替换原则告诉我们不要破坏继承体系

  •  

    依赖倒置原则告诉我们要面向接口编程

  • 接口隔离原则告诉我们在设计接口的时候要精简单一

  • 开闭原则是总纲,告诉我们要对扩展开放,对修改关闭

三.设计模式的种类

  • 创建型模式(5种)
    • 单例模式
    • 工场方法模式
    • 抽象工场模式
    • 建造者模式
    • 原型模式
  • 结构型模式(11种)
    • 模版方法模式
    • 中介者模式
    • 观察者模式
    • 访问者模式
    • 命令模式
    • 职责链模式
    • 策略模式
    • 迭代器模式
    • 解释器模式
    • 备忘录模式
    • 状态模式
  • 为型模式(7种)
    • 适配器模式
    • 桥接模式
    • 组合模式
    • 装饰模式
    • 外观模式
    • 享元模式
    • 代理模式

   

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

转载于:https://my.oschina.net/u/2323537/blog/619966

你可能感兴趣的:(设计模式的一些概念----设计模式学习笔记)