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

1、问题场景

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

2、解决办法

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

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

UML图


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

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

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

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

Name:一个奔跑中的loser

E-mailchenfeiyoucan@163.com

_________________________________________


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值