sách gpt4 ai đã đi

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

In lại 作者:行者123 更新时间:2023-12-04 06:37:32 26 4
mua khóa gpt4 Nike

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

您有一个可以是各种状态之一的对象:mở , 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)

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

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

1 Câu trả lời

您代表的是 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
Bài viết được đề xuất: asp.net - 将表从一个 SQL Server 复制到另一个 - 无法链接它们
Bài viết được đề xuất: image - TextureMgr 怎么了?
Bài viết được đề xuất: 部署 CMS 驱动的内容
Bài viết được đề xuất: .net - 我应该使用哪个类在字符串中进行多次替换?
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com