美文网首页
设计模式的原则及UML类图

设计模式的原则及UML类图

作者: _小毛驴 | 来源:发表于2020-12-23 16:50 被阅读0次

设计模式类型

设计模式分为三种类型:

  • 创建型模式
  • 结构型模式
  • 行为型模式

设计原则

软件开发的23种设计模式,就是我们的前辈的经验总结。
为了又好又快的在特定场景下实现功能,并能够满足下下面的软件设计原则,就形成了这样一个个解决特定场景的代码套路或者是代码模板。
这些设计模式最后能够形成,都需要遵循的这样的7大原则,因为满足了这样的设计原则,代码的健壮性,扩展性,稳定性等等指标才能够得到满足。

设计原则名称 简要说明 关键词
单一职责原则
(Single Responsibility Principle, SRP)
类的职责要单一,不能将太多的职责放在一个类中 类拆分
开闭原则
(Open-Closed Principle, OCP)
软件实体对扩展是开放的,但对修改是关闭的,
即在不修改一个软件实体的基础上去扩展其功能
扩展开放、 修改关闭、 核心原则
里氏代换原则
(Liskov Substitution Principle, LSP)
在软件系统中,一个可以接受基类对象的地方
必然可以接受一个子类对象
多态体现
依赖倒转原则
(Dependency Inversion Principle, DIP)
要针对抽象层编程,而不要针对具体类编程 抽象
接口隔离原则
(Interface Segregation Principle, ISP)
使用多个专门的接口来取代一个统一的接口 最小接口
合成复用原则
(Composite Reuse Principle, CRP)
在系统中应该尽量多使用组合和聚合关联关系,
尽量少使用甚至不使用继承关系
少重写、少继承
迪米特法则
(Law of Demeter, LoD)
一个软件实体对其他实体的引用越少越好,
或者说如果两个类不必彼此直接通信,
那么这两个类就不应当发生直接的相互作用,
而是通过引入一个第三者发生间接交互
最少知道、不要陌生朋友

看看上面的7大原则中,依赖倒转原则是不是看起来很眼熟。这个原则也体现在java的面向接口编程思想中,具体落地在JDBC规范,各个数据库厂家实现具体的接口。
也体现在了IoC(控制反转思想),DI(依赖注入思想)。是不是更眼熟,这些思想的具体落地,支撑起了Spring框架。你看一个软件思想为了满足一个设计原则,就能支撑起一个Spring庞大帝国。或者说,一个设计原则在前,需要有一个普遍适用的思维框架去满足它,并把这个原则应用在一个完整应用的角角落落。

UML类图

描述设计模式时,总要使用的UML类图,这些类图表达的就是类和类之间的关系

  • 依赖关系 :依赖(Dependency)


    image.png
  • 继承关系:泛化(Generalization)


    image.png
  • 实现关系:实现(Realization)


    image.png
  • 关联关系:关联(Association)
    一对一,一对多 的成员属性


    image.png
  • 聚合关系:聚合(Aggregation)
    整体,部分,可分离


    image.png
  • 组合关系:组合(Composition)
    不可分离,共生共灭


    image.png

图片来源:https://www.jianshu.com/p/57620b762160

相关文章

网友评论

      本文标题:设计模式的原则及UML类图

      本文链接:https://www.haomeiwen.com/subject/hybmnktx.html