美文网首页
设计模式-状态设计模式

设计模式-状态设计模式

作者: woochen123 | 来源:发表于2018-01-19 18:25 被阅读0次

1.定义

对于某个操作,由于其状态的不同,表现出的行为会不同(如遥控器进行音量增加的操作,在电视是开机状态下是可以调节音量的,而在关机状态不会有任何反应)

2.示例

状态模式.png
public class User {
    OperateFunction operateFunction = new LogoutState();

    /**
     * 设置用户状态
     * @param operateFunction
     */
    public void setState(OperateFunction operateFunction) {
        this.operateFunction = operateFunction;
    }

    public void commit() {
        operateFunction.commit();
    }

    public void foward() {
        operateFunction.foward();
    }
}
public interface OperateFunction {
    void commit();
    void foward();
}

public class LoginState implements OperateFunction{
    @Override
    public void commit() {
        System.out.println("评论");
    }

    @Override
    public void foward() {
        System.out.println("转发");
    }
}
public class LogoutState implements OperateFunction{
    @Override
    public void commit() {
        System.out.println("去登录");
    }

    @Override
    public void foward() {

        System.out.println("去登录");
    }
}

public class Client {
    public static void main(String[] args) {
        User user = new User();
        user.commit();//请登录
        user.foward();//请登录
        //设置登录状态
        user.setState(new LoginState());
        user.commit();//评论
    }
}

3.使用场景

Android系统的wifi设置页面

4.总结

状态设计模式是在特定场景下,减少if...else的判断逻辑,增加代码的可维护性和扩展性

相关文章

  • 设计模式-状态模式

    设计模式-状态模式 设计模式 状态模式的关键是区分事物内部的状态

  • 设计模式-状态设计模式

    1.定义 对于某个操作,由于其状态的不同,表现出的行为会不同(如遥控器进行音量增加的操作,在电视是开机状态下是可以...

  • 设计模式——状态模式

    设计模式——状态模式 在状态模式中,类的行为是基于它的状态改变的。这种类型的设计模式属于行为型模式。 优点: 减少...

  • 设计模式-状态模式

    介绍 状态模式和策略模式是一对双胞胎,他们都属于行为设计模式。状态模式和策略模式都是为具有多种可能情形设计的模式,...

  • 手撸golang 行为型设计模式 状态模式

    手撸golang 行为型设计模式 状态模式 缘起 最近复习设计模式拜读谭勇德的<<设计模式就该这样学>>本系列笔...

  • 设计模式——状态模式

    前言 设计模式是指导一个程序猿以更好的姿态处理一些问题,而不再像刚学编程的我们,只会使用if-else分支语句,或...

  • 设计模式--状态模式

    基本常识:策略模式与状态模式是双胞胎,在出生时才分开。 假设公司有个糖果机,1当糖果机由糖果,投入25分钱,转动曲...

  • 设计模式——状态模式

    在阎宏博士的《JAVA与模式》一书中开头是这样描述状态(State)模式的:状态模式,又称状态对象模式(Patte...

  • 设计模式《状态模式》

    引言   上一节我们说了策略模式。这一节我们讲讲策略模式的双胞胎弟弟:状态模式,这个模式大家可能不常见,也不常用,...

  • 设计模式——状态模式

    定义 状态模式,又称状态对象模式(Pattern of Objects for States),状态模式是对象的行...

网友评论

      本文标题:设计模式-状态设计模式

      本文链接:https://www.haomeiwen.com/subject/kzsqmxtx.html