3.2 理解MVC模式
模型(Model):表示用户使用的数据。
1.视图模型(View Model),只表示视图和控制器之间传递的数据,比较简单;
2.领域模型(Domain Model),表示业务领域的数据,以及处理这些数据的操作、转换、规则。
视图(View):用于把模型的某些部分渲染成用户界面(UI)。
控制器(Controller):
1.处理传入的请求;
2.执行模型上的操作;
3.选择渲染给用户视图。
重点:
在域模型设计阶段,一定要进行仔细的规划和设计:域中的每一个类、属性、操作以及规则等,均要有准确而且明确的术语和含义,术语与符号。
依赖注入:在运行时把依赖性注入到类的构造器中。
1.构造器注入,2.设置器注入(属性注入)
Ninject:
依赖链解析
对象生命周期管理
构造器参数值的配置
-----------------------------------------
域驱动开发(DDD):
模型绑定:一个基于约定的特性,用输入数据自动地填充模型对象。
模型元数据:给框架描述模型类的定义。自动的将用于模型类的显示或编辑器UI渲染成视图。
验证:在模型绑定期间执行的,运用了能够被定义为元数据的规则。
聚合为域模型添加了结构化和精确性,使域模型更容易运用于验证,是进行数据库事务管理和级联删除的合适单元。
聚合特定实例之外的对象只可以对根实体进行持久化引用,而不是对聚合内部的任何其他对象。
* 为每个聚合定义独立的数据模型。
存储库(Repository):
是低层数据库的对象表示。强制使域模型与持久化系统分离。
松耦合(losse Coupling):通过抽象接口来处理应用程序的其他区域。
注:并不是每个关系都需要用接口来解耦,决策实际上取决于应用程序的复杂程序,需要哪种测试,以及长期维护情况。
依赖注入(DI,Dependency Injection):
实现给定接口对象的方法,而不直接创建这个实现对象。
单元测试:
“准备/动作/断言”模式。
测试环境、执行测试、结果判断
第3 章中主要是单元测试的代码,不做过程分析,只上传源代码!
源码:http://yunpan.cn/cQerIfSPCHZwT 访问密码 6a33