2012-02-14 57 views
0

我正在为Windows Phone上的IsolatedStorageSettings.ApplicationSettings打包...存储库是否应该处理默认实例?

其中一个原因是为了减少散布的if(x == null)代码的数量。从我用自己的用法收集到的是,如果我从存储库中请求实体并且它不在那里,我会去创建它的默认实例。

我想知道的是,如果没有找到实体,返回实体的默认实例是不是一个好主意?如果是这样怎么会发生?

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

想法?

回答

2

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

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

其中的一个原因,这是削减对散落约

信息库将不修复的,如果(X == NULL)代码量。存储库只是一种抽象数据源的方式。他们不应该包含任何其他逻辑(单一责任原则)。

您可能想要在存储库和今天的所有用法之间添加一个图层(类),以便在一个位置获得这些空检查。

+0

这很有道理,这里有很多很好的信息,谢谢。 – deanvmc 2012-02-14 12:50:09