您的位置:首页 > 其它

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

2015-04-05 09:09 141 查看
1、问题场景

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

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

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

UML图



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

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

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

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

Name:一个奔跑中的loser

E-mail:chenfeiyoucan@163.com

_________________________________________
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: