Architecture 存储库应该处理默认实例吗?

Architecture 存储库应该处理默认实例吗?,architecture,repository-pattern,Architecture,Repository Pattern,我正在为Windows Phone上的IsolatedStorageSettings.ApplicationSettings编写包装 这样做的原因之一是为了减少到处散播的if(x==null)代码的数量。从我自己的使用情况来看,如果我从存储库中请求一个实体,但它不在那里,我无论如何都要创建它的默认实例 我想知道的是,如果找不到实体,返回实体的默认实例会是一个坏主意吗?如果是这样的话,这应该如何发生 我应该允许用户传入默认实例吗?也许是工厂 想法?否。如果没有默认实例,则不应创建默认实例。至少不适

我正在为Windows Phone上的IsolatedStorageSettings.ApplicationSettings编写包装

这样做的原因之一是为了减少到处散播的if(x==null)代码的数量。从我自己的使用情况来看,如果我从存储库中请求一个实体,但它不在那里,我无论如何都要创建它的默认实例

我想知道的是,如果找不到实体,返回实体的默认实例会是一个坏主意吗?如果是这样的话,这应该如何发生

我应该允许用户传入默认实例吗?也许是工厂


想法?

否。如果没有默认实例,则不应创建默认实例。至少不适用于
Get
方法

至于实体创建,我总是在我的存储库中包含一个
Create
方法(带有与强制信息相对应的参数)

这样做的原因之一是为了减少到处散播的if(x==null)代码的数量

存储库不会解决这个问题。存储库只是一种抽象数据源的方法。它们不应包括任何其他逻辑(单一责任原则)

您可能希望在存储库和您当前的所有用法之间添加一个层(类),以便在一个位置获得这些空检查