vlambda博客
学习文章列表

OOP设计模式Python实现--行为型模式之状态模式

作者简介

211工程院校贵州大学管理学院硕士研究生、互联网金融行业资深DevOps研发工程师. 曾在国内多家知名互联网公司 平安科技、微众银行、顺丰科技、魅族任职. 具有多年国内一线互联网公司自动化运维平台设计与开发经验。



OOP设计模式Python实现

行为型模式--状态模式

前言:

行为型模式是对在不同的对象之间划分责任和算法的抽象化;在系统运行时,对象并不是孤立的而是通过相互通信与协作完成复杂功能的,也就是一个对象在运行时也将影响到其他对象的运行。在状态模式中随着对象内部的状态发生改变对象执行不同的流程,也就是类的行为是基于它的状态改变的。在代码开发过程中,会根据不同的情况作出不同的处理,最直接的解决方案是将这些所有可能发生的情况全都考虑到,使用if... else...条件控制语句进行状态判断来处理不同的情况,这样的代码在面临复杂的状态判断时就会显得"力不从心"。随着状态的增加或减少,就意味着if...else..语句将会随之进行修改,导致代码的可读性、扩展性变弱,维护也会很麻烦。状态模式通常在代码逻辑中包含大量与对象状态相关的条件控制语句时使用。

 1 

白话状态模式

监控Agent对Linux服务器的性能指标进行采集,并将获取到的数值与指标阈值相比对,进而采取不同的告警策略。

 2 

示例代码(未使用状态模式)

OOP设计模式Python实现--行为型模式之状态模式

输出:

OOP设计模式Python实现--行为型模式之状态模式

 3 

示例代码(应用状态模式)

OOP设计模式Python实现--行为型模式之状态模式

OOP设计模式Python实现--行为型模式之状态模式

输出:

OOP设计模式Python实现--行为型模式之状态模式

 4 

结束语

如果本文可以对您的工作学习带来帮助,请扫描左侧赞赏码以资鼓励作者;文章勘误请扫描右侧二维码联系作者。