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