gpt4 book ai didi

design-patterns - 跟踪/状态设计模式

转载 作者:行者123 更新时间:2023-12-04 06:37:32 26 4
gpt4 key购买 nike

问题跟踪器之类的最接近的设计模式是什么?

您有一个可以是各种状态之一的对象:open , closed , in production .

可以根据当前状态执行操作。

我最初的建模看起来有点像这样:

class Status
- next_status (None or Status)
- previous_status (None or Status)
- actions (set of Actions)

class Action
- name (string)
- description (string)

可以对操作进行分组并将组分配给状态。类似于您可以说的大多数权限模型。

只是在寻找有关此最遵循的模式的输入,以便我可以对其进行更多研究。谢谢!

最佳答案

您代表的是 finite state machine (FSM),真的是流程图,但是你的类设计看起来像doubly-linked list .如果状态确定前一个和下一个状态,这是可行的,但在大多数系统中这是不正确的。在您的示例中考虑“打开”状态,下一个状态是否可能是“关闭”或“生产中”?

如果两种状态都有可能,请考虑更改状态对象并向类层次结构添加转换(或可能替换操作?)对象:

class Status 
- transitions (Transition[])

class Transition
- from (Status)
- to (Status)

在这里状态知道什么转换是可能的(例如“打开”可能转换为“关闭”或“生产中”)。通过这种方式,您将 FSM 表示为 directed graph .此外,根据我自己的经验,让实体知道它来自哪里通常并不重要,因此删除 prior_status .相反,可以通过审计日志记录/数据库表捕获历史记录来捕获路径。

关于design-patterns - 跟踪/状态设计模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4686942/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com