自己对于策略模式的理解

1.定义:
定义了算法族,分别封装起来,让它们之间可以互相替换。
此模式让算法的变化独立于使用算法的客户。
2.实现方式:
在客户类中以组合的方式,将算法族的抽象父类作为该类数据成员A。在使用算法时,委托给A。
3.体现的OO原则:
封装变化:
算法族是客户类的属性之一,因为该属性在发展中很容易发生变化,所以将这一变化从客户的属性中抽离出来了。
多用组合,少用继承:
本来算法族是客户类的属性之一,采用继承的方式派生出子类去,实现父类的方法也能够实现该功能,可是这样做的最大缺点是无法知道所有的算法,随着需求的变化,有着算法的增加也很正常的。使用组合建立系统具有很大的弹性,不仅可将算法族封装成类,更可以运行时动态地改变行为,只要组合的行为对象符合正确的接口标准即可。
针对接口口编程,不针对实现编程:
客户使用算法族的抽象父类,所以实现就不会绑死在客户类中。
开始针对实现,所以实现就会绑死在客户类中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值