码迷,mamicode.com
首页 > 编程语言 > 详细

java设计模式之策略模式总结

时间:2017-09-04 11:50:50      阅读:116      评论:0      收藏:0      [点我收藏+]

标签:问题   角度   缺点   适用于   勿喷   log   代码   自学   定义   

策略模式的定义:(定义截自http://www.cnblogs.com/whgk/p/6087064.html)

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

换句话讲,也就是将那些使用的方法分别封装成独立的类,然后将这一类使用接口统一管理起来,让需要使用这些方法的用户能够随时调用它们。上面例子中的战斗行为就相当于定义中的算法一词。只是换了个说法而已。

缺点:

1、客户端必须知道所有的策略类,并自行决定使用哪一个策略类。这就意味着客户端必须理解这些算法的区别,以便适时选择恰当的算法类。换言之,策略模式只适用于客户端知道算法或行为的情况。

2、由于策略模式把每个具体的策略实现都单独封装成为类,如果备选的策略很多的话,那么这些类的数目就非常多了。

 

从代码角度去认识策略模式:

 

(赵云用三个妙计解决问题,这个场景中的要素有三个:三个妙计,一个锦囊,一个赵云)

1.首先创建一个策略接口(包含一个每个锦囊都可以执行的算法)

技术分享

2.然后写三个实现类,因为有三个妙计

技术分享

技术分享

技术分享

3.那么计谋有了,需要一个锦囊来存放三个妙计

技术分享

4.主人公赵云出场,一次打开妙计

技术分享

(自学所用,勿喷)

 

java设计模式之策略模式总结

标签:问题   角度   缺点   适用于   勿喷   log   代码   自学   定义   

原文地址:http://www.cnblogs.com/newbieYi/p/7472703.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!