GoF设计模式之状态模式及其实例
定义:允许一个对象在其内部状态发生变化时改变它的行为,对象看起来修改了它的类。属于对象行为型模式。
优点:
(1)封装了转换规则。在状态模式中无须使用冗长的条件语句来进行状态的判断和转移,将不同状态之间的转换封装在状态类中,提高了代码的可维护性。
(2)枚举可能的状态,在枚举状态之前需要确定状态种类。 (3)将所有与某个状态有关的行为放到一个类中,并且可以方便地增加新的状态,只需 要改变对象状态即可改变对象的行为, (4)允许状态转换逻辑与状态对象合成一体,而不是一个巨大的条件语句块。 (5)可以让多个环境对象共享一个状态对象,从而减少系统中对象的个数。
缺点:
(1)状态模式的使用必然会增加系统类和对象的个数。 (2)状态模式的结构与实现都较为复杂,如果使用不当将导致程序结构和代码混乱。
适用范围:
(1)对象的行为依赖于它的状态(属性)并且可以根据它的状态改变而改变它的相关行 为,如银行账号,具有不同的状态时其行为有所差异(有些状态既能存款又能收款,有些状者 能存款但是不能取款)。 (2)代码中包含大量与对象状态有美的条件语甸
版权声明:
作者:lichengxin
链接:https://www.techfm.club/p/28883.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。
THE END
二维码
共有 0 条评论