设计模式的理解--策略模式

策略模式: 定义了算法族,分别封装起来,让他们之间可以相互替换,让算法的变化独立于使用算法的客户。

 

 

个人理解:

   需要做一件事情,但事情的内容是不确定的,可能是事情A,可能是事件B,由某些条件决定

 
在程序中体现为:
public class Person {
public void doOneThing(事件类型){
if(事件类型 ==事情A){
//这样做
}else if(事件类型 ==事情B){
//这样这样做
}else {
//.......
}
 
}
}
 
缺点:Person 需要知道每一个事情如何去做,增加新的事情时,会修改代码增加 if else代码让Person知道如何去做,造成doOneThing 方法过大,不易于维护阅读。
 
解决方法:
  将这些可变的事情做法抽取出来,按其共性定义接口Thing,每种事情的做法封装为Thing接口的实现,利用多态的特性,Person只要获得Thing 调用Thing的方法就可以执行某个事了,而不是必须知道事件如何去做。
  当新增事情时,只需要新增Thing接口实现,Person类的结构无需变动。


 
 策略模式使用中需要解决策略的选择问题。
总结:策略模式本质是利用了对接口操作及多态的特性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值