十状态模式

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应用(等待多个线程准备完毕( 可以覆盖上次的打印内)等待多个远程调用结束)(代码片段

java23种设计模式十五(连载)

java23种设计模式十五(连载)

java23种设计模式十五(连载)

java23种设计模式十五(连载)