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

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

时间:2017-06-20 10:55:47      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:oid   ldd   方法   nbsp   extend   模式   logs   接口   不同   

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

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中的设计模式)

标签:oid   ldd   方法   nbsp   extend   模式   logs   接口   不同   

原文地址:http://www.cnblogs.com/blackdeng/p/7052840.html

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