设计模式类型
设计模式分为三种类型:
- 创建型模式
- 结构型模式
- 行为型模式
设计原则
软件开发的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
网友评论