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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java设计模式之策略模式总结相关的知识,希望对你有一定的参考价值。

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

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

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

缺点:

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

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

 

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

 

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

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

技术分享

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

技术分享

技术分享

技术分享

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

技术分享

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

技术分享

(自学所用,勿喷)

 

以上是关于java设计模式之策略模式总结的主要内容,如果未能解决你的问题,请参考以下文章

对设计模式的总结之简单工厂与策略模式

Javascript设计模式总结之 -- 策略模式

Java设计模式----------策略模式

《JAVA与模式》之策略模式

Java设计模式之策略模式

JAVA设计模式之策略模式