首页 > 代码库 > Java 实现状态(State)模式
Java 实现状态(State)模式
/** * @author stone */ public class WindowState { private String stateValue; public WindowState(String stateValue) { this.stateValue = http://www.mamicode.com/stateValue;"窗体".equals(stateValue)) { switchWindow(); this.stateValue = "http://www.mamicode.com/全屏"; } else if ("全屏".equals(stateValue)) { switchFullscreen(); this.stateValue = "http://www.mamicode.com/窗体"; } } private void switchWindow() { System.out.println("切换为窗体状态"); } private void switchFullscreen() { System.out.println("切换为全屏状态"); } }
/** * 状态的使用 * @author stone * */ public class WindowContext { private WindowState state; public WindowContext(WindowState state) { this.state = state; } public WindowState getState() { return state; } public void setState(WindowState state) { this.state = state; } public void switchState() { this.state.handle(); } }
/* * 状态(State)模式 行为型模式 * 既改变对象的状态,又改变对象的行为 * 依据状态,改变行为 */ public class Test { public static void main(String[] args) { /* * 本例的 状态值仅仅有两个,由状态类自身控制 * 也能够把状态值的控制,交由client来设置 */ WindowContext context = new WindowContext(new WindowState("窗体")); context.switchState(); context.switchState(); context.switchState(); context.switchState(); } }
打印
切换为窗体状态 切换为全屏状态 切换为窗体状态 切换为全屏状态
Java 实现状态(State)模式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。