|
|
1
3
常见的解决方案是一种称为依赖项注入(DI)的技术。有些人也把它称为控制反转(IoC)。 Inversion of Control Containers and the Dependency Injection pattern 您可以手动实现DI,如 described in this blog post ,或者您可以让DI容器(即框架)为您完成工作。 常见的DI容器有: |
|
|
2
3
我不认为可以将两者完全分开,但可以确保依赖关系不是双向的。
持久性层、服务层和视图层了解模型对象;模型对象对其所在的层不敏感。 层的依赖关系是单向的,并从前向后流动:
您可以从后面到前面进行单元测试,因为依赖关系使模拟变得容易。 不可能没有依赖项,但是您应该设计它们,这样就没有循环。 唯一一个 不 依赖项是一个不被任何人调用并且从不调用另一个类的依赖项。这既不是有用的,也不是值得的设计目标。 |
|
|
3
1
将持久性逻辑从业务对象中拉出来,并将它们放入数据仓库中 Adapter . 它的工作原理类似于.NET中现有的适配器(OleDbDataAdapter)的工作原理。这样,您还将分离业务对象和持久性逻辑。 您的客户机代码将更加冗长,但我认为这确实是真正分离层的最佳方式。 |
|
|
4
0
执行此操作的流行模式是Repository模式。在本例中,存储库使用集合语义充当门面,完全隐藏持久化数据所在的位置,无论是文件系统还是数据库。您可以实现它来访问数据,然后将数据映射到您想要使用的任何类型。 您可以将域驱动设计作为您正在使用的活动记录模式的替代方案。 |
|
|
5
0
http://en.wikipedia.org/wiki/Data_Access_Object DAO不是反模式!将它们与Spring和泛型一起使用,您就不必在意;) 每一层之间都有连接!将它们完全分离意味着它们无法进行通信(因此它们是无用的)。
|
|
|
6
0
n层设计:在业务逻辑层,您可以创建一个数据访问类和一个数据操作类。始终对接口进行编程。 |
|
|
A B · C#Excel自动调整列避免长文本时出错 1 年前 |
|
|
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 1 年前 |
|
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 1 年前 |
|
|
Sei · Avalonia/WPF将路由器传递到控制模板 1 年前 |