zoukankan      html  css  js  c++  java
  • MVC和MVP的初步理解

    MVC (Model-View-Controller)模式,即模型-视图-控制器模式,其核心思想是将整个程序代码分成相对独立而又能协同工作的3个组成部分,具体的功能如下:
    模型(Model):业务逻辑层。实现具体的业务逻辑、状态管理的功能。
    视图(View):表现层。就是与用户实现交互的页面,通常实现数据的输入和输出功能。
    控制器(Controller):控制层。起到控制整个业务流程的作用,实现View层跟Model层的协同工作。

    程序中经常遇到这样的情况:

    有两个集合(对象)A和B,两者通过抽象成为独立的实体,但是希望建立A和B之间的关系。

    处理方式可否理解为如下三种:

    1.将B作为参数传递到A中可以作为属性传入,可以作为方法的参数传入;如果将方法也作为一种对象,就更是如此。

    2.建立一个C(Controller)对象,将B(Model)传入C,在C中将B传入A(View),再在A中调用B的数据。——MVC,上面图片的Return View(personalInformation)可见一斑。

    3.建立一个C对象(Presenter)对象,将B(Model)和A(view)传入,有C调用B获取数据,由C传入获取的数据在A中使用;如果A产生事件,在事件订阅方法中对B对象进行操作。——MVP,感觉操作系统的资源管理器就是一个MVP模式,Model=数据文件,View=资源管理器窗体,P=操作系统,操作系统负责调用Model的数据在资源管理器窗体中显示,同时资源管理器和操作系统通信,在资源管理器中的用户操作和事件,由操作系统负责响应并执行,即P操作M。

      程序中对象无非就是两种关系,一种是两角关系,一种是三角恋;其实归根结缔是两角关系。想将两个对象建立关系,就必须考虑两角恋还是三角恋,当然我们一直就是这样做的!这和现实事件很相似:

    boyfriend和girlfriend两个人,boyfriend可以Kiss他的girlfriend,boyfriend通过自己的方法Kiss与girlfriend建立了联系

    A同学和B同学在同一所学校上学,A和B通过学校这个对象联系起来。

    前者是直接联系,后者是间接联系。联系可以相互联系;也可以内部联系,即对象和其自身的组成部分相联系。

    多个程序都通过操作系统联系起来;一个窗体的消息传入操做系统,由操作系统负责触发事件;程序也是一种哲学啊!

    文章未经说明均属原创,学习笔记可能有大段的引用,一般会注明参考文献。 欢迎大家留言交流,转载请注明出处。
  • 相关阅读:
    【SCOI2012】滑雪
    【NOI2008】假面舞会
    ※初赛知识总结※
    【FJSC2012】足球
    【中山市选2011】杀人游戏
    【SDOI2008】洞穴勘测
    【SNOI2017】炸弹
    【LGOJ1606】白银莲花池
    int类型中为什么负数比正数多了一个数?
    utf8、utf16、utf32之间的格式
  • 原文地址:https://www.cnblogs.com/yhlx125/p/2428714.html
Copyright © 2011-2022 走看看