【发布时间】:2013-03-23 15:07:29
【问题描述】:
假设我有一个模型:
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);
}
现在,假设服务层会自动为AddThing 上的每个事物生成一个identifier。还假设将此identifier 公开给表示层很重要,因为它可能会传递给其他服务。
鉴于我必须将Thing 传递给AddThing,这是建模Thing 的最佳方式吗?表示层的开发者可能认为他们可以指定一个identifer,但这会被IThingService的具体实现忽略。当然identifier必须是public才能被IThingService设置为GetThing。
是否可以简单地忽略在调用AddThing 时传递的identifier,或者是否有更好的方法对此进行建模以防止这种情况发生?
【问题讨论】:
标签: c# architecture soa