23种设计模式(Template模式/Strategy模式)

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 17:12   1872   0

1、问题场景

场景: 在面向对象那个设计实现中,比如某一个业务逻辑在不同的细节中有不同的实现,但是逻辑的框架是一致的,
问题: 通过继承或者组合怎么来设计逻辑框架?

2、解决办法

模板模式:定义操作算法的一个骨架,而将这些操作步骤延迟到子类当中,使得子类可以根据需要重新定义算法执行步骤(算法可理解为业务流程)

策略模式:将逻辑封装到一个个类中,通过组合的方式实现具体的业务流程,再通过委托的方式将抽象接口的实现委托给组合对象实现。

UML图


两种模式的优缺点:模板模式--易于修改和扩展那些被复用的实现;破坏了封装性,继承父类中的实现细节暴露给了子类,父类更改时不得不更改子类,弗雷继承的实现在运行期间不能改变。

策略模式--“黑盒”复用,被包含的对象细节外部不可见,封装性好;但是系统中对象过多。

备注:在面向对象的设计当中有一条法则--优先使用组合,而非继承。

---------------------------------------------------------------------------

Name:一个奔跑中的loser

E-mailchenfeiyoucan@163.com

_________________________________________


分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP