设计模式
2023-03-06 15:57:45 0 举报
AI智能生成
设计模式
作者其他创作
大纲/内容
个人总结
创建型
工厂反思
建造者模式
单例模式
1.简单工厂
定义
提供一个创建对象实例的功能,而无须关心其具体实现。
本质
选择实现
2.外观模式
定义
为子系统中的一组接口提供一个一致的界面
本质
封装交互,简化调用
案例
装机公司、代码生成
3.适配器模式
定义
将一个类的接口转换成客户希望的另外一个接口。
本质
转换匹配,复用功能
案例
插座转换
4.单例模式
定义
保证一个类仅有一个实例,并提供一个访问它的全局访问点
本质
控制实例数目
实现方式
懒汉模式
私有化构造方法
双重检查加锁
饿汉模式
5.工厂方法模式
定义
定义一个用于创建对象的接口,让子类决定实例化哪一个类,FactoryMethod使一个类的实例化延迟到其子类
案例
文件导出:数据库,xml,excel等
本质
延迟到子类来选择实现
6.抽象工厂
定义
提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类
本质
选择产品簇的实现
案例
选择组装电脑配件的过程
7.生成器模式
定义
将一个复杂对象的构建与他的表示分离,使得同样的构建过程可以创建不同的表示
案例
文件导出:导出内容格式有固定要求
本质
分离整体构建算法和部件构造
8.原型模式
定义
用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象
核心概念
克隆
浅克隆
基本类型,String类型
深克隆
基本类型,String类型+引用类型
原型管理器
动态管理原型实例
本质
克隆生成对象
9.中介者模式
定义
用一个中介对象来封装一系列的对象交互。
案例
电脑里面的主板功能
本质
封装交互
10.代理模式
定义
为其它对象提供一种代理以控制对这个对象的访问
本质
控制对目标对象的访问
11.观察者模式
定义
当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新
本质
触发联动
区别对待观察者
12.命令模式
定义
将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作
本质
封装请求
案例
电脑开机;餐馆点餐
可撤销操作
宏命令:命令组合
队列请求
日志请求
13、迭代器模式
定义
提供一种方法顺序访问一个聚合对象中各个元素,而又不需暴露该对象的内部表示
本质
控制访问聚合对象中的元素
14、组合模式
定义
将对象组合成树形结构以表示“部分-整体”的层次结构
本质
统一叶子对象和组合对象
15、模板方法模式
定义
定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。
本质
固定算法骨架
16、策略模式
定义
定义一系列算法,把他们一个个封装起来,并且让他们可相互替换
本质
分离算法,选择实现
17、状态模式
定义
允许一个对象在其内部状态改变时改变它的行为。
本质
根据状态来分离和选择行为
18、备忘录模式
定义
在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态
本质
保存和恢复内部状态
19、享元模式
定义
运用共享技术有效地支持大量细粒度的对象
本质
分离与共享
20、解释器模式
定义
给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子
本质
分离实现,解释执行
21、装饰模式
定义
动态地给一个对象添加一些额外的职责。
实例
个人工资,团队工资,业务经理工资
本质
动态组合
22、责任链模式
定义
使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系
本质
分离职责,动态组合
23、桥接模式
定义
将抽象部分与它的实现部分分离,使他们都可以独立地变化
本质
分离抽象和实现
24、访问者模式
定义
表示一个作用于某对象结构中的各元素的操作,它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作
本质
预留通路,回调实现
总结
模式选择的方法
模式的功能-看是否能解决问题
模式的本质-看模式是否主要用来解决这类问题
模式的适用程度-看使用这个模式是否贴切,看是否需要变形
应用模式的复杂程度-看使用模式带来的开发复杂度是否可接受或可控
应用模式的代价-看使用模式的代价是否可接受或可控,如:引入过多的对象、耗费更多的内存等
如何提升
多看
多练
多总结
反复参阅研磨设计模式一书
多思考
0 条评论
下一页