设计模式
2017-11-17 15:11:09 215 举报
AI智能生成
设计模式
作者其他创作
大纲/内容
创建型模式
简单工厂模式
适用环境
工厂类负责创建的对象比较少
客户端只知道传入工厂类的参数,对于如何创建对象不关心
应用
KeyGenerator keyGen=KeyGenerator.getInstance("DESede");
Cipher cp=Cipher.getInstance("DESede");
工厂方法模式
http://design-patterns.readthedocs.io/zh_CN/latest/_images/FactoryMethod.jpg
与简单工厂相比,用工厂实体类代替了参数
抽象工厂模式
http://design-patterns.readthedocs.io/zh_CN/latest/_images/AbatractFactory.jpg
适用环境
系统中有多于一个的产品族,而每次只使用其中某一产品族
应用
在很多软件系统中需要更换界面主题,要求界面中的按钮、文本框、背景色等一起发生改变时
建造者模式
http://design-patterns.readthedocs.io/zh_CN/latest/_images/Builder.jpg
适用环境
创建复杂对象
部分与主体之间紧密结合,不可分离
应用
人物角色包括人体、服装、装备等组成部分
单例模式
适用环境
一是某个类只能有一个实例
应用
主键编号生成器
结构型模式
适配模式
http://design-patterns.readthedocs.io/zh_CN/latest/_images/Adapter.jpg
适用环境
系统需要使用现有的类,而这些类的接口不符合系统的需要
应用
抽象的JDBC接口和各个数据库引擎API之间都需要相应的适配器软件
代理模式
http://design-patterns.readthedocs.io/zh_CN/latest/_images/Proxy.jpg
适用环境
远程(Remote)代理:为一个位于不同的地址空间的对象提供一个本地 的代理对象
虚拟(Virtual)代理:如果需要创建一个资源消耗较大的对象,先创建一个消耗相对较小的对象来表示,真实对象只在需要时才会被真正创建
缓冲(Cache)代理:为某一个目标操作的结果提供临时的存储空间,以便多个客户端可以共享这些结果
应用
RPC框架
设置缓存
装饰模式
http://design-patterns.readthedocs.io/zh_CN/latest/_images/Decorator.jpg
适用环境
需要动态地给一个对象增加功能,这些功能也可以动态地被撤销
应用
输入、输出流
外观模式
适用环境
要为一个复杂子系统提供一个简单接口时可以使用外观模式
系统中每一层的入口,层与层之间不直接产生联系
应用
springMVC模式
享元模式
适用场景
一个系统有大量相同或者相似的对象,由于这类对象的大量使用
应用
String=“ABCD”
组合模式
子主题
适用场景
一个对象整体或部分层次,在具有整体和部分的层次结构中,希望通过一种方式忽略整体与部分的差异,可以一致地对待它们。
应用
树型结构
UML
继承
代码表现:泛化关系表现为继承非抽象类
实现
代码表现:实现关系表现为继承抽象类
组合
一种强依赖的特殊聚合关系,如果整体不存在了,则部分也不存在了
代码表现:部分由整体在初始化时创建
聚合
整体和部分不是强依赖的,即使整体不存在了,部分仍然存在
代码表现:部分set到整体
关联
代码表现:关联对象通常是以成员变量的形式实现的
依赖
代码表现:类构造方法及类方法的传入参数,箭头的指向为调用关系
行为型模式
中介模式
适用场景
使用中介者模式可以将对象间一对多的关联转变为一对一的关联,使对象间的关系易于理解和维护
应用
Controller 作为一种中介者,它负责控制视图对象View和模型对象Model之间的交互
命令模式
适用场景
系统需要将请求调用者和请求接收者解耦,使得调用者和接收者不直接交互
应用
遥控器-电视
观察者模式
适用场景
一个对象的改变将导致其他一个或多个对象也发生改变
应用
kafka
某团队战斗游戏中某队友牺牲将给所有成员提示等等
状态模式
适用场景
这些状态之间可以发生转换时使用状态模式
代码中包含大量与对象状态有关的条件语句
应用
工作流
策略模式
http://design-patterns.readthedocs.io/zh_CN/latest/_images/Strategy.jpg
适用场景
某个类的某一行为存在多种实现方式
动态地让一个对象在许多行为中选择一种行为
应用
责任链模式
适用场景
有多个对象可以处理同一个请求,具体哪个对象处理该请求由运行时刻自动确定
应用
请假审批
备忘录模式
适用模式
保存一个对象在某一个时刻的状态或部分状态
应用
挑战BOSS之前,保存
0 条评论
下一页