2009-04-30 69 views
0

如果我有两个程序集,一个只包含业务规则(程序集A),另一个作为外部依赖项(如文件系统,数据库,Web服务,等等(组件B),应该是参考B还是应该B参考A?所有内部程序集与具有外部依赖关系的程序集

例如:

如果我有一个SourceCodeInterpreter类(组件A),应将其实例化一个SourceCodeFileReader(在组件B)在数据读取,或应在SourceCodeFileReader读取源后实例化一个SourceCodeInterpreter类文件,然后启动解释器?

回答

1

这一切都取决于事情将如何使用。如果程序集使用另一个程序集中定义的类型,则需要对其进行引用。我尽量避免在程序集之间添加依赖关系,除非他们真的有存在的原因。

在你的例子中,我试着将两个程序集分开。这两个程序集最有可能被您的应用程序使用。您的应用程序可以同时参考,并且它们可以是独立的。该应用程序将使用SourceCodeFileReader来读取您的代码,然后将其传递给您的SourceCodeInterpreter来解释它。

但是,如果您试图使这需要使用单一类型,我会将“顶级”程序集作为包含对“低级细节”的引用的程序集。在这种情况下,这可能意味着解释者会引用读者 - 因为读者是较低层次的,并且是无用的。

+0

我喜欢这一个。我认为要让主应用程序尽可能笨,简单,它必须在单个类上调用单个方法,但使用两个类/程序集并不多。通过这种方式更好地分离问题。谢谢! – 2009-04-30 16:43:59

相关问题