【发布时间】:2021-06-09 21:02:39
【问题描述】:
声明:
有两种选择:
WorkItemState 是一个 emum,可以是:SCHEDULED、READY、SUBMITTED、EXECUTING、COMPLETED
- 创建单个方法:updateWorkItemState(workItemId, workItemState)
- 创建多个方法:markAsCompleted(workItemId)、markAsSubmitted(workItemId)、markAsExecuting(workItemId) 等。
在第一种方法中,我将工作项状态暴露给客户端,而在第二种方法中,我必须创建多个方法,即每个状态一个。
我还必须检查仅当当前状态有效时才能应用状态转换。 Ex- 如果工作项处于 EXECUTING 状态,则只有它可以完成。
这两种方法中哪一种在可读性、可维护性和可扩展性方面看起来更好?
【问题讨论】:
-
为什么不两者兼而有之?使第一个项目的 (1) 私有/受保护,然后使第二个 (2) 方法调用私有/受保护方法来处理实际工作。这对于可重用性和可读性是最好的。
-
是的。如果我采用第二种方法,我已经认为我会以这种方式编写代码,但问题是是否采用第二种方法。随着状态不断增加,方法也将开始增加。
标签: java c# oop design-patterns