您当前的位置: 首页 > 

dawn

暂无认证

  • 5浏览

    0关注

    204博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

设计模式:状态模式

dawn 发布时间:2022-06-17 00:19:13 ,浏览量:5

  GoF定义:允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。

  这个对应的就是Switch的分支判断,当每个条件达到时就执行对应的代码。

  但是如果分支条件多了就需要修改代码,这样违背了开放封闭的原则。

  下面的代码演示的就是采用注册制,每个处理对象都有对应的条件和处理动作,满足条件就执行的代码,并且这样有个好处就是以后有了新的条件,那么就编写对应的处理动作,加上它的满足条件,注册一下就可以了。

  代码:


  输出:

StateA可以做具体的处理

StateC可以做具体的处理

  需要注意的细节就是被操作对象的处理使用了foreach循环,遍历注册的对象,也可以使用if-else的分支判断来做,但是麻烦。

  这样处理分支判断就很灵活,满足了对内修改封闭、对外开发拓展的编码原则。

关注
打赏
1664252102
查看更多评论
立即登录/注册

微信扫码登录

0.1804s