zoukankan      html  css  js  c++  java
  • 设计模式状态

    状态模式



    设计原则:遵循单一职责、依赖倒置、开闭原则
    常用场景:一个对象在多个状态下行为不同,且这些状态可互相转换
    使用概率: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");
            }
        }
    }
  • 相关阅读:
    主动一点
    白鱼泡湿地公园
    Google管理制度(东北分公司)
    碎嘴子
    升级的时代
    SD2.0大型网站架构讨论沙龙
    旅途摘抄《12条职场秘笈》
    fscache 调研
    lxccheckpoint 一些 比较老的资料
    folly,facebook刚刚开源的底层c++函数
  • 原文地址:https://www.cnblogs.com/zhaojj/p/7799619.html
Copyright © 2011-2022 走看看