前言

设计模式概述。


编程代码的原则/面向对象的优势:4点

  • 可维护
  • 可复用
  • 可扩展
  • 可灵活/灵活性好

统一建模语言(UML)图的基本关系:6种

  • 继承:实线,三角箭头,指向被继承类
  • 实现:虚线,三角箭头,指向被实现接口
  • 依赖:虚线,箭头,指向被依赖者
  • 关联:实线,箭头,指向被关联者
  • 聚合:空心菱形,实线箭头,指向被聚合者
  • 组合:实心菱形,实线箭头,指向被组合者

依赖和关联、聚合、组合的区别:

  • 依赖表现:局部变量,方法形参,静态方法调用
  • 关联、聚合、组合表现:一个类持有另一个类对象(的引用)作为成员

依赖、关联、聚合和组合关系的弱强程度:依赖<关联<聚合<组合


设计模式的原则:7种

开放-封闭/开-闭原则(OCP)

描述:

  • 针对软件实体:类、模块和函数等:对扩展是开放的,对更改是封闭的

应用:

  • 实现业务逻辑时,可扩展/增加新的代码,不可更改/不修改旧的代码

依赖倒转/置原则(DIP)

描述:

  • 高层模块不应该依赖底层模块,两种模块都应该依赖抽象
  • 抽象不应该依赖细节
  • 细节应该依赖抽象

其中的“不应该”、“应该”是“依赖倒转”的体现

应用:

  • 不面向实现编程,面向接口/抽象类编程
  • 使用抽象类/接口作为变量、参数

单一职责原则(SRP)

描述:

  • 类的逻辑/功能/职责单一
  • 引起类变化的原因应该有且仅有一个

应用:

  • 拆分业务对象、逻辑

最少知识原则/迪米特法则(LOD)

描述:

  • 类间弱耦合

应用:

  • 尽可能封装类

里氏代换原则(LSP)

描述:

  • 子/派生类型必须能够代换其父/基类型
  • 子类可以扩展父类的功能,但不能改变父类的功能
  • 本质:面向对象的多态

应用:

  • 使用子类扩展业务逻辑

接口隔离原则(ISP)

描述:

  • 客户端不应该依赖不需要的接口
  • 类间的关系应该建立在最小的接口上

应用:

  • 依据业务逻辑拆分复杂多用接口为简单专用接口

合成/聚合复用原则(C/ARP)

描述:

  • 类间尽量使用依赖、关联、聚合和组合关系,不使用继承关系

应用:

  • 类间尽量使用依赖、关联、聚合和组合关系,不使用继承关系

设计模式原则的关系(记忆方式)

  • 总体规则——开放-封闭/开-闭原则(OCP)、依赖倒转/置原则(DIP)
  • 设计模式的核心是面向对象
  • 面向对象的封装——单一职责原则(SRP)、最少知识原则/迪米特法则(LOD)
  • 面向对象的继承、多态——里氏代换原则(LSP)、接口隔离原则(ISP)
  • 类间的关系描述——合成复用原则(CRP)

设计模式的类型:3种

依据意图:

  • 创建型:负责提供创建对象的机制
  • 结构型:负责将对象组装成较复杂的结构
  • 行为型:负责对象间的高效沟通和职责委派

总结

设计模式概述。


参考资料


作者的话

  • 感谢参考资料的作者/博主
  • 作者:夜悊
  • 版权所有,转载请注明出处,谢谢~
  • 如果文章对你有帮助,请点个赞或加个粉丝吧,你的支持就是作者的动力~
  • 文章在描述时有疑惑的地方,请留言,定会一一耐心讨论、解答
  • 文章在认识上有错误的地方, 敬请批评指正
  • 望读者们都能有所收获