Lesson 3 设计模式 心得笔记

用户头像
edd
关注
发布于: 2020 年 06 月 24 日
Lesson 3 设计模式  心得笔记

上周学习了面向对象设计的目标(强内聚、低耦合)和原则(OCP, DIP, LSP, SRP, ISP),今周学习常见设计问题的可重复使用的通用解决方案——设计模式

使用设计模式,可以让设计符合设计原则,达到强内聚、低耦合的目标。

设计模式的分类

从功能分

  • 创建模式 - 对类实例化过程进行抽象

  • 结构模式 - 将类或者对象结合在一起形成更大的结构

  • 行为模式 - 对在不同的对象之间划分责任和算法的抽象化

从方式分

  • 类模式 - 以继承的方式实现模式,静态的

  • 对象模式 - 以组合的方式实现模式,动态的

设计模式举例

简单工厂

  1. 优点 Client 不依赖具体实现 对 Client 实现了 OCP

  2. 缺点 对 Factory 未实现 OCP

改进

  • 运行时从配置获取需要实现化的类,对 Factory 也满足 OCP

  • 但缺少编译时类型安全

更完备的方法(也更复杂)是使用 Spring 的容器,应用代码对服务的依赖又容器注入



适配器

当需要使用类的功能,但类的接口与所需的接口不同时,通过适配器模式进行接口的转换

模板方法模式

  • 通过继承进行扩展

  • 基类负责算法的轮廓和骨架

  • 子类负责算法的具体实现

策略模式

  • 将策略使用者与策略的具体实现分离

  • 便于切换不同的策略实现

组合模式

  • 容器与内容的一致性

  • 单个与多个的一致性

  • 递归结构的实现

装饰器模式

  • 在不改变被装饰物接口的前提下扩展现有对象功能

  • 可动态添加多种装饰功能

这周 还学到了 反应式编程框架 Flower 的设计 知识点很多以后再总结吧

用户头像

edd

关注

还未添加个人签名 2018.01.18 加入

还未添加个人简介

评论

发布
暂无评论
Lesson 3 设计模式  心得笔记