• 设计模式状态


    状态模式



    设计原则:遵循单一职责、依赖倒置、开闭原则
    常用场景:一个对象在多个状态下行为不同,且这些状态可互相转换
    使用概率:20%
    复杂度:中
    变化点:状态的种类
    选择关键点:这些状态是否经常在运行时需要在不同的动态之间相互转换
    逆鳞:无
    相关设计模式
    策略模式:二者的实现方式非常相似,策略接口与状态接口,具体的策略与具体的状态以及二者都拥有的上下文,如果看它们的类图
    ,会发现几乎一模一样,而二者不同的地方就在于,状态模式经常会在处理请求的过程中更改上下文的状态,
    而策略模式只是按照不同的算法处理算法逻辑,而且从实际场景来讲,顾名思义,状态模式改变的是状态,策略模式改变的是策略


    主要思想:
    实际就是当前对象的状态(往往是一个或多个属性)不同,那么同样的方法执行结果是不同的
    就是在方法内进行状态判断if else 的执行
    注意是判断本对象的属性,而策略模式往往是根据传参来判断



    public class MyStatue {
        private int status;
    
        public void setStatus(int status) {
            this.status = status;
        }
    
        public void doSomething() {
            if (status==1) {
                System.out.println("do1");
            } else if (status==2) {
                System.out.println("do2");
            } else {
                System.out.println("do another");
            }
        }
    }
  • 相关阅读:
    ZOJ Bookcase
    C*++ Calculations
    STL <cctype>
    线段树单点更新+区间更新
    ZOJ Supermarket
    STL <cassert>
    算法导论<二>
    MV Maker [DP]
    LIS 最长有序子序列(递增/递减/非递增/非递减)
    LIS
  • 原文地址:https://www.cnblogs.com/zhaojj/p/7799619.html
Copyright © 2020-2023  润新知