本文将具体来介绍学习策略模式。
工具/原料
myeclipse
定义
定义一组算法,将每个算法都封装起来,并且使他们之间可用替换。
业务场景前期
1
比如我们常用的应用可以通过多种渠道来进行注册,但是每种渠道注册逻辑又各不相同,首先我们想到的是定义一个接口,接口中定义一个注册方法,然后为每种注册方式增加一个实现类。
2
定义一个接口和通用方法
3
定义各个方式的具体实现
4
测试AppRegister app = new AppRegister(); app.toRegiste();返回App渠道注册
增加封装类
1
增加一个Context封装类,可以动态地让一个对象在许多行为中选择其中一种。
2
调用
3
测试结果返回App渠道注册淘宝渠道注册
类图关系
1
Context封装角色:也就是上下文角色,承上启下,封装可能存在的变化。
2
Strategy抽象策略角色:算法抽象,通常为接口。
3
ConcreteStrategy具体策略角色:具体操作的实现算法。
优缺点
1
优点:算法可以自由切换,扩展性良好。
2
缺点:策略类会增多比较多而且所有策略类都需要对外暴露。
上一篇:图解野外捕鱼工具--鱼叉的制作
下一篇:肛瘘患者的饮食调理: