软件构造-几种简单的设计模式

一.构造模式:

1.Adapter Pattern适配器模式:

意图:将类的接口转换为客户端期望的另一个接口。
—— 解决类之间接口不兼容的问题;
——为已有的类提供新的接口;
目标:对旧的不兼容组件进行包装,在新系统中使用旧的组件。
在这里插入图片描述
适配器模式结构图:
在这里插入图片描述
·Adaptee是现有的类。
·Target是在现有库中定义的接口。
·Adapter是创建的类,它是从适配器类继承的,它实现了Target接口。注意,它可以调用SpecificRequest方法(从适应性继承)在它的请求方法中(由Target实现)。

2.Decorator pattern装饰模式:

问题: 需要对对象进行任意或者动态的扩展组合。
方案: 实现一个通用接口作为要扩展的对象,将主要功能委托给基础对象 (stack),然后添加功能(undo,secure,…)。应注意装饰边框与被装饰物的一致性。
接口:定义装饰物执行的公共操作。
起始对象,在其基础上增加功能(装饰),将通用的方法放到此对象中。
在这里插入图片描述
装饰模式结构图:
在这里插入图片描述
Decorator抽象类是所有装饰类的基类,里面包含的成员变量。
component 指向了被装饰的对象。

二.行为模式

1.Strategy Pattern策略模式:

问题: 针对特定任务存在多种算法,调用者需要根据上下文环境动态的选择和切换。
解决:定义一个算法的接口,每个算法用一个类来实现,客户端针对接口编写程序。
在这里插入图片描述
策略模式结构图:
在这里插入图片描述
·Strategy是算法几种不同实现的统一接口;
·ConcreteStategyA/B/C是AlgorithmInterface()的三种不同实现;
·Context客户端可选择Strategy接口的任意一种实现。

2.Template Method pattern模板方法模式:

问题:不同的客户端具有相同的算法步骤 ,但是每个步骤的具体实现不同.
解决:在父类中定义通用逻辑和各步骤的抽象方法声明,子类中进行各步骤的具体实现。
在这里插入图片描述
样板方法模式结构图:
在这里插入图片描述
·模板法模式适用性:
——在父类声明一个通用逻辑
——模板模式用继承+重写的方式实现算法的 不同部分.策略模式用委托机制实现不同完整算法 的调用(接口+多态)
——框架实现了算法的不变性,客户端提供每步的具体实现。

3.Iterator Pattern迭代器模式:

问题:客户端需要以统 一的,与元素类型无关的方式访问容器中的所有元素;
解决方案:一种迭代策略模式。
重要性:隐藏了容器的内部实现,用统一的接口 支持多种遍历策略。
在这里插入图片描述
迭代器模式结构图:
在这里插入图片描述
·Aggregate interface: 获取迭代器对象的接口;
·ConcreteAggregate class:实现迭代器对象的获取;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值