DDD分层类图:
1、该框架不管从源代码还是从 UML 类图来看,都很复杂,让人半天摸不到门,但其实上只有两个技术影响了框架的直观性,一个是依赖注入框架 NInject,一个是 Entity Framework。后者只是在 Datas 层使用,而 NInject 则应用到了几乎所有层,如 ICustomerService 和 CustomerService,ICustomerRepository 和 CustomerRepository 的绑定。弄懂了这两个概念,框架就一目了然了。
2、当用户点击 Web 界面的添加按钮,会到后台执行 Customer2Controller 的 Add 函数,Add 函数调用 ICustomerService 的 Add 接口,实际执行的是 CustomerService 的 Add 函数,ICustomerService 和 CustomerService 的绑定是通过 NInject 绑定;CustomerService 的 Add 函数调用了 ICustomerRepository 的 Add 接口,实际执行的是 CustomerRepository 的 Add 函数,绑定是通过 NInject。CustomerRepository 的 Add 函数调用的是 DDDContext 的 DbSet<Customer> 成员来添加。