[设计模式] 策略模式联想

      策略模式(Strategy), 定义了算法族, 分别封装起来, 让它们之间可以互相替换. 此模式

让算法的变化独立于是用算法的客户.

      为什么取名策略模式?因为将Class需要使用的策略独立出来了。

      在Duck例子中,我们将duck的行为独立出来,封装为一组策略,其实就用到了策略模式。

      思考一下,身边还有哪些可以用策略模式来解决的呢?

 

      * Brew应用软件开发时,OEM层将很多功能(策略集合)封装成接口,UI层只专注于界面设计,

         直接使用OEM层提供的接口就可以了。(故,MVC模式也包含了Strategy模式)

 

      * 公司分工时,有业务部门负责产品销售,产品定位(策略)交给产品经理和公司高层决定。功能

         独立,减小耦合。企业有专门的政策制定部门(HR或管理团队),制定策略来约束公司正常运营。

         因此,策略模式可以描述为:分工合作,委托授权,权责分明。

 

         如果总想无处不在,只会加剧耦合度,甚至两线作战,无法兼顾,压力巨大。

 

       * 如果策略比较简单,无法预见其增长和扩大的可能,就无须单独处理。

 

       * 一次家庭旅游的策划,包括旅行线路,食宿和旅行用品整理。如果每个人都等同投入,意见很多,

          关注点过多,计划庞大且显混乱。采用一人主导,大家建议的方式,每人负责一方面策略,权责

          分明,井井有条。

 

          说到这里,责任划分也是策略模式中很重要的方面,保证各部分的松耦合,降低依赖,策略模式

          才能达成独立的目的。

 

        * 自我批评,有时候项目上解决一些问题,会兴趣优先,当前问题没有解决完,就去研究该问题。这

           样直接导致注意力分散,权责不清了,工作效率就会低下,一定要注意保证策略的独立性!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值