// patterns/StateDemo.java// (c)2017 MindView LLC: see Copyright.txt// We make no guarantees that this code is fit for any purpose.// Visit http://OnJava8.com for more book information.// Simple demonstration of the State patterninterface StateBase {void f();void g();void h();void changeImp(StateBase newImp);}class State implements StateBase {private StateBase implementation;State(StateBase imp) {implementation = imp;}@Overridepublic void changeImp(StateBase newImp) {implementation = newImp;}// Pass method calls to the implementation:@Overridepublic void f() { implementation.f(); }@Overridepublic void g() { implementation.g(); }@Overridepublic void h() { implementation.h(); }}class Implementation1 implements StateBase {@Overridepublic void f() {System.out.println("Implementation1.f()");}@Overridepublic void g() {System.out.println("Implementation1.g()");}@Overridepublic void h() {System.out.println("Implementation1.h()");}@Overridepublic void changeImp(StateBase newImp) {}}class Implementation2 implements StateBase {@Overridepublic void f() {System.out.println("Implementation2.f()");}@Overridepublic void g() {System.out.println("Implementation2.g()");}@Overridepublic void h() {System.out.println("Implementation2.h()");}@Overridepublic void changeImp(StateBase newImp) {}}public class StateDemo {static void test(StateBase b) {b.f();b.g();b.h();}public static void main(String[] args) {StateBase b =new State(new Implementation1());test(b);b.changeImp(new Implementation2());test(b);}}/* Output:Implementation1.f()Implementation1.g()Implementation1.h()Implementation2.f()Implementation2.g()Implementation2.h()*/
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。