【发布时间】:2010-07-22 06:55:30
【问题描述】:
我有一个 Request 类,它可以处于以下状态之一:
草稿, 提交, 得到正式认可的, 被拒绝, 在使命中, 已完成
Request 对象的状态可以通过调用以下方法之一来更改。每个方法都可能包含一些参数,以进一步将某些数据与特定状态相关联:
void Submit(string by) { }
void Approve(string by, string comment) { }
void Reject(string by, string comment) { }
void AddToMission(Mission mission) { }
void Complete() { }
我正在考虑在这里实现 State 模式。我的每个状态类都将保存与它们相关的那些额外信息。我在这里实现 State 模式的主要想法是不要在 Request 类本身中添加所有这些不相关的属性,例如:
public string ApprovedBy;
public string ApprovedComment;
public string RejectedBy;
public string RejectedComment;
public Mission Mission;
您认为 State 模式适合在这里实施吗?
问候,
莫什
【问题讨论】:
标签: design-patterns pattern-matching anti-patterns state-pattern