我喜欢这个想法具有接口和实现独立。但怎么分开?是的接口定义中的一个单独的。净大会?你有一个单个项目定义的所有接口,为一个解决方案?否则是有问题的圆形的依赖关系的接口?

有帮助吗?

解决方案

把你域的目的和接口在一个单独的"领域"的组件。
本大会不应该参考任何东西,但核心。净组件。

这样你会得到一个清洁的分离,从你域/服务模式和你的实现。

编辑:
http://jeffreypalermo.com/blog/the-onion-architecture-part-1/

其他提示

我不会把接口进入一单独的大会只是为了它。然而,如果接口,采取任何形式的IPC或可扩展性架构,则通常给他们他们自己的议会。

如果你有项目,需要参照各方,然后是的,你会需要一个独立的议会接口,但是你也应该 仔细 审查的架构来看,如果有另一种方式解决圆形的依赖。

我更喜欢保持最常见的或简单的实现方式的接口中的一个子文件夹(和namespace)下面的名字接口。

\project\
\project\IAppender.cs
\project\Appender\
\project\Appender\FileAppender.cs
\project\Appender\ConsoleAppender.cs

如果我延长这类外项目。在一个特殊的项目,重复上述文件夹/空间类似。

\specialproject\
\specialproject\Appender\
\specialproject\Appender\MemoryAppender.cs

在该项目的我现在正在该接口以及相关的基类进入集会是在逻辑上分之间的功能。实现这些供应商和类别进去的一个核心组件。想法是,人们使用我们的API可以参考或多或一个API dll在一个明确的和合乎逻辑的方式。

较小的应用程序不需要这种分离。但是,无论在哪里我保持的接口,我将让他们在同一个名字空间的任何基类。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top