Java设计模式学习笔记一

谈起设计模式,其实大家多多少少都听说过一些,比如单例模式、工厂模式等等随口就能说出来,但是要我说出具体的细节,或者用代码实现一遍,可能就不知道从何处着手了。所以特意系统的学习一下设计模式,以下就是我的一些学习笔记,如有错误,请不吝指出。

什么是设计模式?

设计模式其实就是程序员在编程时总结出来的一系列模式、规则,是对软件设计中普遍存在(反复出现)的问题,所提出的解决方案。

设计模式包含了面向对象的精髓,"懂了设计模式,你就懂了面向对象分析和设计(OOA/D)的核心".

设计模式的目的

代码重用性、可读性、可扩展性、可靠性、高内聚低耦合...

设计模式的七大原则

  1. 单一职责原则
  2. 接口隔离原则
  3. 依赖倒转(倒置)原则
  4. 里氏替换原则
  5. 开闭原则
  6. 迪米特法则
  7. 合成复用原则

1)单一职责原则

对类来说的,即一个类应该只负责一项职责。

2)接口隔离原则

客户端不应该依赖它不需要的接口,即一个类对另一个类的依赖应该建立在最小的接口上。

3)依赖倒转原则

  1. 高层模块不应该依赖低层模块,二者都应该依赖其抽象;
  2. 抽象不应该依赖细节,细节应该依赖抽象;
  3. 依赖倒转的中心思想是面向接口编程;
  4. 使用接口或抽象类的目的是制定好规范,而不涉及任何具体的操作,把展现细节的任务交给他们的实现类去完成。

4)里氏替换原则

  1. 在使用继承的时候,遵循里氏替换原则,在子类中尽量不要重写父类的方法;
  2. 可以通过聚合、组合来解决问题。
    注:聚合关系是整体和部分的关系,整体和部分可以分开(如:电脑由显示器、键盘、鼠标等组成,可以相互分离开);组合关系也是整体和部分的关系,整体和部分不可以分开(如桌子是有桌子腿和桌面组成,但是他们不能分离开,分开就不是桌子了)

5)开闭原则(OCP)

  1. 是编程中最基础、最重要的设计原则
  2. 对扩展开放(对提供方),对修改关闭(对使用方)

6)迪米特法则

  1. 一个对象应该对其他对象保持最少的了解
  2. 类与类关系越密切,耦合度越大
  3. 迪米特法则又叫最少知道原则,即一个类对自己依赖的类知道的越少越好
  4. 只与直接的朋友通信
  5. 直接的朋友:每个对象都会与其他对象有耦合关系,只要两个对象有耦合关系,就说这两个对象之间是朋友关系。耦合的方式有很多:依赖、关联、组合、聚合。其中,称出现成员变量、方法参数、返回值中的类为直接朋友,而出现在局部变量中的类不是直接的朋友。

7)合成复用原则

尽量使用合成/聚成的方式,而不是使用继承

posted @ 2020-03-05 13:45  akon07  阅读(260)  评论(0编辑  收藏  举报