zoukankan      html  css  js  c++  java
  • 第3章 MVC模式

    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

          

  • 相关阅读:
    pyinstaller打包Django项目
    一文览遍Lua
    6. Z 字形变换
    leetcode 5. 最长回文子串
    leetcode 4. 寻找两个正序数组的中位数
    leetcode 3. 无重复字符的最长子串
    leetcode 2.两数相加
    leetcode 1. 两数之和
    线上又炸了
    EasyNetQ 不同框架序列化反序列化问题
  • 原文地址:https://www.cnblogs.com/wjs5943283/p/4606139.html
Copyright © 2011-2022 走看看