三层架构与MVC

  1. 什么是三层?
    1. 软件为什么要分层?
      1. 软件本身灵活性更大,使得软件更新、维护很容易进行,而不需要将整个软件重新发布
      2. 方便团队分工,比如开发可分为界面设计人员、业务实现人员、数据库设计人员等等,充分发挥每个人的特长,提高开发效率。
      3. 忽略数据库差异:SQL Access Oracle MySQL等可以方便更换。
    1. 三层
      1. 表示层(UI)
        1. 展示给用户的界面,用户在使用系统时所能看到的。
        2. 用于显示数据和接受数据,为用户提供一个交互式操作界面。
      1. 业务逻辑层(Business Logic Layer)
        1. 与系统所对应的领域(Domain)有关,包括业务规则、逻辑、实现。
        2. 处于数据访问和表示层中间,起到了数据交换中承上启下的作用。
        3. 三层中底层不应该依赖于上层,并面向接口编程。
      1. 数据访问层(Data Access Layer)
        1. 主要功能是访问数据库文件,比如:数据库系统、文本文件、XML文档、二进制文件、word文档、Excel文档等等
    1. 如何进行分层?
      1. 面向接口编程
      1. 应用设计模式

  1. 什么是MVC?
    1. MVC是“Model View Controller”的缩写,即模型、视图、控制器

        1. View可以用Composite Pattern实现;
        2. 只要Controller改变了Models的数据或者属性,所有依赖的View都会自动更新,所以,ViewModel之间可以用Observer pattern 来实现。
        3. Controller控制View显示;可以用strategy Pattern来实现。
        4. Model可以用Mediator Pattern来实现
    1. MVC是一种复杂的设计模式,由多种设计模式组合才能实现MVC架构。
      1. Model
        1. 业务规则、流程、逻辑处理,业务流程的处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。
      1. View
        1. 视图(View)代表用户交互界面,一个应用可能有很多不同的视图,MVC设计模式对于视图的处理仅限于视图上数据的采集和处理,以及用户的请求,而不包括在视图上的业务流程的处理。业务流程的处理交予模型(Model)处理。
      1. Controller
        1. 从用户接收请求, 将模型与视图匹配在一起,共同完成用户的请求。
        2. 模型、视图与控制器的分离,使得一个模型可以具有多个显示视图。
  1. 三层架构、MVC的区别与联系
    1. 区别
      1. MVC是一种设计模式,而三层架构是一个概念,MVC可以是UIBLL两层分开。
      2. MVCModel由业务逻辑和数据访问两层组成。
    1. 联系
      1. 都有表示层(视图层)

posted @ 2012-01-31 11:37  李龙生的博客  阅读(137)  评论(0编辑  收藏  举报