策略模式

来源:互联网 发布:如何挑选油烟机知乎 编辑:程序博客网 时间:2024/05/22 16:47

作用:为了防止出现需求变更,导致的大量代码变更,采用策略模式来帮助我们执行类中的方法。

这里写图片描述
通过创建不同的对象,调用子类(重写父类)的方法

public class Context{    SuperClass sc;    public Context(SuperClass sc){        this.sc = sc;    }    public void mothed(){        sc.test();    }}

在客户端使用:

public static void main(String[] args){    Context c = new Context(new Class1());    c.method();}

这样的话只需要修改客户端的条件,即可;

也可以和简单工厂类结合使用,让客户端与SuperClass解耦。

public Context(Object obj){    SuperClass sc;    switch(obj){        case obj1:            sc = new Class1();        case ...    }}
这样,客户端只需要创建Context的对象,传入一个参数即可。这样的话,虽然要修改Context中的内容,但在对象创建方面就不需要操心了。简单来说,只要有变更,就不要怕改,但也要尽可能的避免修改,所以,使用怎样的设计模式操作方便,代码改变少,需要一定的功底
0 0