我想开发一个企业应用程序,其中包括一个 WindowsForms 表示层、用于业务逻辑和数据访问的中间层组件以及一个 MsSQL Server 数据库。中间层组件应包含一些业务对象,并将使用 .NET Remoting 从表示层调用。 Whitch 是从表示层引用这些业务对象的最佳方式(以及为什么)?
- A) 创建类库项目,实现业务对象。从表示层和中间层引用这个项目。
- B) 创建定义业务对象的接口(interface)库项目。创建实现接口(interface)的类库项目。从中间层引用类库项目。从表示层引用接口(interface)库项目。
- C) 为中间层和表示层创建单独的类库项目。从表示层引用相应的项目。
最佳答案
这个问题可能没有明确的答案,这取决于你在做什么。
A 在很多情况下通常就足够了。对于小型“单一应用程序”项目,没有任何理由不能直接从 UI 和 BL 层引用业务对象库。它当然是最简单的,有时简单是最好的。
B 可能是“最好的”,您将抽象出您的实际实现,以便将来可以在不违反契约(Contract)的情况下进行更改,并且如果您有接口(interface),则单元测试会更容易。这样做的另一个好处是,如果您觉得有必要,将来从 B 切换到 C 时不会觉得太困难。
C 在大多数情况下可能有点矫枉过正。也就是说,在较大的项目中,您可能会发现有必要。我曾开发过具有多达三个独立数据对象集的大型客户端-服务器 n 层应用程序。一组用于DA层映射并存储在数据库中。第二组位于业务逻辑和网络层,用于处理和通过网络传递,第三组位于客户端,用于绑定(bind)到 UI。由于抽象优势,也值得考虑为 C 使用接口(interface)。
总而言之,在不确切了解您的应用领域或范围的情况下 - B 是一个很好的起点。
关于reference - 从表示层引用业务对象的最佳方式..?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2548057/