• 设计模式之状态模式


    定义(百度百科):
            当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。

    UML类图:

    具体代码:

    public abstract class State {
        public abstract void handle();
    }
    
    public class ConcreteState extends State {
        @Override
        public void handle() {
    
        }
    }
    
    public class ConcreteState extends State {
        @Override
        public void handle() {
    
        }
    }

    模块说明:
          Context:它定义了客户需要的接口并维护一个具体状态角色(State)的实例,将与状态相关的操作交给当前的ConcreteState对象来处理
          State:定义一个接口以封装使用Context的的一个特定状态相关的行为
          ConcreteState:实现抽象状态State的具体实例

    适用场景:
           对象状态的改变将导致行为的变化。
           代码中包含非常多状态判断的语句,导致客户类与类库之间的耦合增强

    优缺点:
    优点:
             简化应用逻辑控制(对状态的控制)
             更好的区分状态和行为

    缺点:
            状态模式的使用必然会增加系统中ConcreteState的个数,导致系统运行开销增大

    总结:
           根据状态分离和选择行为

  • 相关阅读:
    树莓派进阶之路 (029)
    C语言学习笔记 (010)
    树莓派进阶之路 (028)
    C语言学习笔记 (009)
    虚拟内存和swap分区的关系
    树莓派进阶之路 (027)
    树莓派进阶之路 (026)
    C语言学习笔记 (008)
    ubuntu下安装gedit插件
    Ubuntu终端命令行播放音乐(mp3)
  • 原文地址:https://www.cnblogs.com/daily-note/p/7474356.html
Copyright © 2020-2023  润新知