假设我有一个模型:
public class Thing
{
public int? identifier { get; set; }
public string Title { get; set; }
public string Description { get; set; }
... // arbitrary number of additional properties.
}
以及包含两个关键方法的服务层接口:
public interface IThingService
{
Thing GetThing(int id);
Thing AddThing(Thing thing);
}
现在,假设服务层会自动identifier
为每个事物生成一个AddThing
. 还假设将其公开identifier
给表示层很重要,因为它可能会传递给其他服务。
鉴于我必须通过一个Thing
to AddThing
,这是最好的建模方式Thing
吗?表示层的开发者可能认为他们可以指定一个identifer
,但这会被 的具体实现忽略IThingService
。当然,identifier
必须是 public 才能由IThingService
for设置GetThing
。
是否可以简单地忽略传入的identifier
调用AddThing
,或者是否有更好的方法对此进行建模以防止这种情况发生?