首页 > 代码库 > 黑马程序员-3.MVC框架

黑马程序员-3.MVC框架

        今天发现了斯坦福的一套视频感觉很首启发,那套视频里讲了iOS7开发的一些思想,MVC从开始到最后,感觉MVC就是为iOS开发而生(好像html也有,没做过不知道),感觉MVC还是很重要的。


1.何为MVC

        MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。

视图(View)=在屏幕上你所看到的(由Controller调用)

    MVC好处是它能为应用程序处理很多不同的视图。在视图中其实没有真正的处理发生,不管这些数据是联机存储的还是一个雇员列表,作为视图来讲,它只是作为一种输出数据并允许用户操纵的方式。

模型(Model)=你的程序是什么(而不是你的程序是如何显示的)

    模型表示企业数据和业务规则。在MVC的三个部件中,模型拥有最多的处理任务。例如它可能用像EJBs和ColdFusion Components这样的构件对象来处理数据库,被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据,由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。

控制器(Controller)如何使你的模型呈现给用户(程序逻辑)

    控制器接受用户的输入并调用模型和视图去完成用户的需求,所以当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后再确定用哪个视图来显示返回的数据。 

借来斯坦福的ppt讲解MVC的实现

DB98A8D101A92066FBD6D264B7486D90_B500_90

首先Controller和Model,Controller和View之间进行通信,Model与View之间不能通信


Controller和View之间会出现两种通信方式:数据源方法以及代理方法,代理方法在下一个blog中会写。按钮等继承了UIControl的那些类则通过action或者outlet(输出口)进行通信。

  1. 数据源方法(data source)

    V不管保存数据,但是数据更新需要C进行显示。

  2. 代理方法(delegate)


  3. action或者outlet

    按钮等继承了UIControl的那些类则通过action或者outlet(输出口)进行通信


Controller和Model之间通过Notification(通知)or KVO进行数据的更新



黑马程序员-3.MVC框架