2011-08-31 203 views
2

我有一个实体工厂需要访问文件系统来构建对象。我创建了一个IFileSystem接口,该接口正在注入工厂。实体和基础设施服务

使用基础架构服务的正确方法是?如果是这样的话,建议为实体本身做同样的事情,因为实体上的重要方法也需要操纵文件系统。

回答

1

很难回答这个问题,而不知道你在做什么域名。它似乎不正确,因为这将类似于注入类似IDatabase的东西。文件系统和数据库是持久性技术,领域逻辑应该尽可能与持久性无关。因此,如果您的Ubiquitous Language不包含“文件系统”的概念,您可能需要重新评估此设计。您可以简单地以更多以域为中心的术语来重申您的意图,如ICustomerConstructionInfoProvider。然后注入这个接口实现类似于注入库实现的方式。

+0

那么这个领域是一个非常简单的领域。我创建了一个小型应用程序来备份文件。 DDD也许是矫枉过正,但我​​试图将其用作学习过程。所以你建议我应该考虑类似于存储库的文件系统?并拥有某种表示我感兴趣的文件属性的实体。并且在其中具有用于操作文件系统的CRUD方法。 –

+0

不,我认为在你的情况下文件系统不是基础设施。文件,文件夹等是你的'域'的一部分。也许你需要直接在标准的.NET或Java文件系统类的基础上实现你自己的类,比如BackupSet和BackupJob。 – Dmitry