[] 状态 void pri 通过 xtend 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 中的设计模式)
来源: http://www.bubuko.com/infodetail-2129021.html