十状态模式
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了十状态模式相关的知识,希望对你有一定的参考价值。
状态模式,随着状态的改变,其行为也会随之改变。也可以用来解决大量if else分支机构问题。
实例代码:
package com.shi.common; public class StatePattern { public static void main(String[] args) { Server1 server1 = new Server1(); String result = server1.getServer(2); System.out.println(result); result = server1.getServer(1); System.out.println(result); result = server1.getServer(3); System.out.println(result); result = server1.getServer(4); System.out.println(result); } } interface State{ public String getServer(int state); } class Server1 implements State{ @Override public String getServer(int state) { if (state == 1) { return "服务器1,为您服务"; }else{ return new Server2().getServer(state); } } } class Server2 implements State{ @Override public String getServer(int state) { if (state == 2) { return "服务器2,为您服务"; }else{ return new Server3().getServer(state); } } } class Server3 implements State{ @Override public String getServer(int state) { if (state == 3) { return "服务器3,为您服务"; }else{ return "未找到服务器"; } } }
输出结果:
服务器2,为您服务
服务器1,为您服务
服务器3,为您服务
未找到服务器
以上是关于十状态模式的主要内容,如果未能解决你的问题,请参考以下文章
JUC并发编程 共享模式之工具 JUC CountdownLatch(倒计时锁) -- CountdownLatch应用(等待多个线程准备完毕( 可以覆盖上次的打印内)等待多个远程调用结束)(代码片段