假设我有一个模型:
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给表示层很重要,因为它可能会传递给其他服务。
鉴于我必须通过一个Thingto AddThing,这是最好的建模方式Thing吗?表示层的开发者可能认为他们可以指定一个identifer,但这会被 的具体实现忽略IThingService。当然,identifier必须是 public 才能由IThingServicefor设置GetThing。
是否可以简单地忽略传入的identifier调用AddThing,或者是否有更好的方法对此进行建模以防止这种情况发生?