状态模式(think in java中的设计模式)

Posted 酒皇

tags:

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

状态模式:在一个对象内含有一个父类对象或者一个接口的引用。该引用指向一个子类对象,通过内部的方法改变子类对象的类别,从而改变同一个引用调用同样的方法达到不同的效果。

public class A {
    private B b=new B();
    void buildC(){b=new C();}
    void buildD(){b=new D();}
    void buildE(){b=new E();}
    public static void main(String[] args){
        A a=new A();
        a.b.say();
        a.buildC();
        a.b.say();
        a.buildD();
        a.b.say();
        a.buildE();
        a.b.say();
    }
    //结果如下:
    //sya:B
    //sya:C
    //sya:D
    //sya:E

    
}
class B{
    public void say(){
        System.out.println("sya:B");
    }
}
class C extends B {
    public void say(){
        System.out.println("sya:C");
    }
}
class D extends B {
    public void say(){
        System.out.println("sya:D");
    }
}
class E extends B {
    public void say(){
        System.out.println("sya:E");
    }
}

 

以上是关于状态模式(think in java中的设计模式)的主要内容,如果未能解决你的问题,请参考以下文章

工厂模式(think in java中的设计模式)

模板方法模式(think in java中的设计模式)

迭代器模式(think in java中的设计模式)

Think In OO

Think In OO

Thinking in java Chapter19 枚举类型