您的位置:首页 > 其它

设计模式--策略模式(strategy)

2015-02-02 18:56 218 查看
1.策略模式(strategy ['strætədʒi])

我的理解是:方案候选模式 (反正关键就是有很多的候选,哈哈)

看了很多例子,都是在说鸭子的,那个例子很好,在这里可以看

他们生产鸭子,我们就制造人

父类 Person类

public class Test {

public static void main(String[] args) {
LiSi ls = new LiSi();
//想要美声唱法,那就生成美声唱法的对象,但是类型统一用Singable
Singable s = new MeiShengSinging();
ls.setSingable(s);
ls.sing();

//想要通俗唱法,就生成通俗唱法的对象
s = new TongSuSinging();//调用的代码完全不变,仅仅是new的对象类型变了而已
ls.setSingable(s);
ls.sing();
}

}


View Code
我也说一下我对策略模式的看法吧,有错误欢迎指正,大家共同进步嘛

优势:

如上所述,第一:避免了普通继承的一味重复,因为不变的内容还留在父类中,会改变的内容通过组合的方式来加成;

第二:同时使用了面向接口编程,代码修改率大大变小(其实所有的设计模式都有这个优点,不再是一次性代码了)

第三:用户要实现不同的功能是只要实现接口,生成新的类就可以了,并且这些类之间是可以随时替换的(因为多态嘛)

缺点:第一:还是要生成不少类(每个方法一个类···)

第二:你要预先知道大概要生成多少个类,(虽然总数不能确定,但变化是可以预见的情况下,才推荐使用策略模式)

*/

(PS:要写一篇好的博客真的好辛苦也好不容易啊····)

最后推荐大家看这两篇博客 12

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