设计模式
2022-05-25 18:03:16 28 举报
AI智能生成
设计模式
作者其他创作
大纲/内容
表模式
事务模式
领域模式
设计范式
GRASP
设计原则
开放扩展关闭修改
开闭原则
任何基类出现的地方子类一定可以出现
里氏替换原则
针对接口编程依赖于抽象而不依赖于具体
依赖倒置原则
接口隔离原则
一个实体要尽量减少与其他实体的互相作用。使功能模块相对独立
迪米特法则|最少知道原则
尽量使用合成/聚合的方式,而不是使用继承。
合成复用原则
1.工厂模式
2.抽象工程模式
懒汉式,线程不安全
懒汉,线程安全
饿汉
双检锁/双重校验锁
3.单例
对初始化过程复杂的对象进行包装
4.建造者模式
利用已有的一个原型对象,快速地生成和原型对象一样的实例。
5.原型模式
创建型
把一个类的接口,转变为客户端期待的另一个接口主要有两种方式1. 继承2. 引用包装
6.适配器模式
7.桥接模式
8.装饰器模式
使用不同的标准来过滤一组对象如SpringAop 中的切面对象AbstractAdvisorAutoProxyCreator.findCandidateAdvisors(获得目标对象需要绑定的切面)方法就是一个过滤器模式
9.过滤器模式
又叫部分整体模式
10.组合模式
通过包装类隐藏系统复杂性
11.外观模式
主要用于减少创建对象的数量,以减少内存占用和提高性能。这种类型的设计模式属于结构型模式,它提供了减少对象数量从而改善应用所需的对象结构的方式。如Spring 的BeanFactory 的 单例缓存 和生命周期缓存
12. 享元模式
这个很好理解,SpringAop,MyBatis接口,微服务接口。都是基于代理来实现的
13. 代理模式
结构型
比如Servlet FilterSpringMvc 拦截器
14. 责任链模式
请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令。
15. 命令模式
SQL解析器,JVM字节码解析器
16. 解释器模式
17. 迭代器模式
二道贩子的感觉
18. 中介者
类似序列化反序列化
19. 备忘录模式
如Spring中的事件监听
20. 观察者模式
类的行为是基于它的状态改变的
21. 状态模式
感觉叫默认对象模式,更贴切。当没有满足需求的预制实例时提供默认实例
22. 空对象模式
一个类的行为或其算法可以在运行时更改
23. 策略模式
24. 模板方法
比较复杂,感觉有点像Ajax的回调逻辑成功失败调用不同方法
25. 访问者模式
行为型
设计模式分类
设计模式
0 条评论
回复 删除
下一页