【发布时间】:2015-11-11 09:27:55
【问题描述】:
我被要求使用表格来存储实体类型的状态。通常我之前总是使用枚举。
存在实体状态变化的业务逻辑。这个逻辑被封装在实体中。当状态是枚举类型时,这很容易。但是现在我需要注入一个服务来获得所需的状态。我不知道将服务(如 StatusService)注入该方法是否是一个好主意,使该方法依赖于 IStatusService。
示例代码:
public class MyEntity
{
public MyEntityStatus Status { set; get; }
public void MethodInWhichStatusMayChange(IMyEntityStatusService myEntityStatusService)
{
//using myEntityStatusService to get the status when it should change
}
}
public class MyEntityStatus
{
public string Name { set; get; }
}
public interface IMyEntityStatusService
{
MyEntityStatus GetStatusA();
MyEntityStatus GetStatusB();
MyEntityStatus GetStatusC();
}
【问题讨论】:
-
MyEntityStatus类的意义何在?它没有任何方法或抽象。恕我直言,这不是很有用。 -
重点是在数据库方面工作的人不必看我的枚举值,数据完整性也更好。
-
代码生成怎么样?只需根据数据库值生成枚举。只要不动态添加状态,这就是一个很好的策略。
标签: c# .net oop domain-driven-design lookup-tables