Skip to content

Commit

Permalink
1
Browse files Browse the repository at this point in the history
  • Loading branch information
YiRanCN committed Nov 13, 2023
1 parent 74da482 commit b9743ca
Showing 1 changed file with 13 additions and 15 deletions.
28 changes: 13 additions & 15 deletions docs/study/think/设计模式.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,18 +12,19 @@ sidebar_position: 2

**思考:**

1. 拿到一个功能需求,不要上来就去实现,应该考虑怎么抽取接口或抽象类;例如API中的ES操作
2. 不要随意修改原有系统的代码,而是尝试去拓展来避免风险;例如API中的新版MVC拦截器处理
1. 拿到一个功能需求,不要上来就去实现,应该考虑怎么抽取接口或抽象类;例如 API 中的 ES 操作
2. 不要随意修改原有系统的代码,而是尝试去拓展来避免风险;例如 API 中的新版 MVC 拦截器处理

#### 单一职责原则

不要存在多于一个导致类变更的原因,也就是说每个类应该实现单一的职责,否则就应该把类拆分。

**思考:**

1. 处理报警的Service/Controller/Mapper等夹杂一些不相干的功能,例如定时任务、用户反馈等;
2. Controller夹杂一些私有方法;需不需要放到Service、Utils里面;
####
1. 处理报警的 Service/Controller/Mapper 等夹杂一些不相干的功能,例如定时任务、用户反馈等;
2. Controller 夹杂一些私有方法;需不需要放到 Service、Utils 里面;

####

#### 里氏替换原则(Liskov Substitution Principle)

Expand Down Expand Up @@ -54,7 +55,7 @@ sidebar_position: 2

#### 迪米特法则(最少知道原则)(Demeter Principle)

一个类对自己依赖的类知道的越少越好。无论被依赖的类多么复杂,都应该将逻辑封装在方法的内部,通过public方法提供给外部。这样当被依赖的类变化时,才能最小的影响该类。
一个类对自己依赖的类知道的越少越好。无论被依赖的类多么复杂,都应该将逻辑封装在方法的内部,通过 public 方法提供给外部。这样当被依赖的类变化时,才能最小的影响该类。

最少知道原则的另一个表达方式是:只与直接的朋友通信。类之间只要有耦合关系,就叫朋友关系。耦合分为依赖、关联、聚合、组合等。我们称出现为成员变量、方法参数、方法返回值中的类为直接朋友。局部变量、临时变量则不是直接的朋友。我们要求陌生的类不要作为局部变量出现在类中。

Expand All @@ -63,6 +64,7 @@ sidebar_position: 2
1. 解耦和模块化;

#### 组合(合成)复用原则(Composite Reuse Principle)

尽量首先使用组合/聚合的方式,而不是使用继承。

**思考:**
Expand All @@ -80,14 +82,10 @@ sidebar_position: 2

其实还有两类:并发型模式和线程池模式。







### 参考

1. [聊一聊面向对象的三大特性](https://www.jianshu.com/p/1974a5837040)
2. [23种设计模式汇总整理](https://blog.csdn.net/jason0539/article/details/44956775)
3. [两万字盘点那些被玩烂了的设计模式](https://mp.weixin.qq.com/s?__biz=Mzg5MDczNDI0Nw==&mid=2247492497&idx=1&sn=31882a4693f0e09a419073b58ddf431e&chksm=cfdab059f8ad394f8fcafed1d96825a7393e491f4d287a0e0ab81e42e974ea87f3f54d973864&scene=21#wechat_redirect)
- [聊一聊面向对象的三大特性](https://www.jianshu.com/p/1974a5837040)
- [23 种设计模式汇总整理](https://blog.csdn.net/jason0539/article/details/44956775)
- [两万字盘点那些被玩烂了的设计模式](https://mp.weixin.qq.com/s?__biz=Mzg5MDczNDI0Nw==&mid=2247492497&idx=1&sn=31882a4693f0e09a419073b58ddf431e&chksm=cfdab059f8ad394f8fcafed1d96825a7393e491f4d287a0e0ab81e42e974ea87f3f54d973864&scene=21#wechat_redirect)
- [设计模式](https://refactoringguru.cn/design-patterns)
- [设计模式之美](https://design-patterns.readthedocs.io/zh_CN/latest/index.html)

0 comments on commit b9743ca

Please sign in to comment.