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通过学校这个对象联系起来。

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

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

文章未经说明均属原创,学习笔记可能有大段的引用,一般会注明参考文献。 欢迎大家留言交流,转载请注明出处。
原文地址:https://www.cnblogs.com/yhlx125/p/2428714.html