PsikoterapistlerBurada
1.0.0
一个网络应用程序,专门从事其领域的心理治疗师可以在此平台上回答向他们提出的问题。
我用过:
建筑
该项目由两层组成。持久层,与数据库关联,核心层,与数据库无关
控制器 => 核心 <= 持久化
我们可以讨论这样的依赖关系图。核心层包含接口类。持久性包含我在其中定义这些接口的类。在控制器方面,我使用UnitOfWork类来减少控制器 DBContext依赖性。然而,虽然控制器是高层,但它与低层UnitOfWork 紧密耦合。我为此使用了IUnitOfWork类。 IUnitOfWork定义了一个包含 IRepository 的完全抽象类。然后我使UnitOfWork类依赖于IUnitOfWork类。同样,我在Controller层和IUnitOfWork之间创建了依赖关系。
控制器 => IUnitOfWork <= UnitOfWork
现在控制器高层依赖于一个抽象类。同样,在UnitOfWork这个低级且详细的类中,Abstrack已经变得依赖于一个类。其实我所做的就是让Core Layer完全独立出来。应用程序的可测试性有所提高。另外,核心层具有独立于ORM框架的结构。在 UnitOfWork 中进行的更改不会影响 IUnitOfWork 层。
另一方面,在应用程序中, DbContext依赖关系仍在UnitOfWork Layer 中继续。这间接造成了Controller-DbContext紧耦合的问题。我使用依赖注入框架来解决这个问题。 (忍者3.2.1.0)