设计模式-策略模式

来源:互联网 发布:linux ssh ppk 编辑:程序博客网 时间:2024/05/22 12:12


策略模式:定义算法族,并封装起来,可以互相替换,这就是策略模式。

策略模式,使得代码可以尽量多的复用。

把变化的内容提取出来,作为接口,根据需求做出多种实现,这就可以看成一个个的算法族。在超类中声明接口类型的属性,并定义个变化行为的方法,让接口调用实现类的方法代替超类自己去实现。


超类:

package ModelTest;public abstract class MakeAnimalCry {Cry cry;public void makeCry(){cry.crying();}}

接口和两个实现类

package ModelTest;public interface Cry {public void crying();}



package ModelTest;public class DogCry implements Cry {@Overridepublic void crying() {System.out.println("wang");}}



package ModelTest;public class CatCry implements Cry {@Overridepublic void crying() {System.out.println("miao");}}



抽象类的子类

package ModelTest;public abstract class MakeAnimalCry {Cry cry;public void makeCry(){cry.crying();}}


测试类:

package ModelTest;public class TC {public static void main(String[] args) {MakeAnimalCry mac=new TestMakeCry(new CatCry());mac.makeCry();}}


如果改变动物的叫声,只需要改变测试类中的参数即可,这就是对策略模式的一种应用。

0 0
原创粉丝点击