一、 优点: 1、 耦合性低:视图层和业务层分离,所以在更改视图层代码时而不用重新编译模型和控制器代码。同样,更改业务流程或者业务规则改变时只需改动模型层即可。由于三个部件是相互独立,改变其中一个不会影响其他两个。 2、 重用性高 :比如很多界面可以重用一个模型。 3、 生命周期成本低。 4、 部署快。 5、 可维护性高。 6、 有利软件工程化管理。 二、 缺点: 1、 没有明确的定义: 2、 不适合小型、中等规模的应用程序。 3、 增加系统结构和实现的复杂性。 4、 视图与控制器间的过于紧密的链接。 5、 视图对模型数据的低效率访问。 6、 一般高级的界面工具或构造器不支持模式。
1、 Model和View永远不能互相通信,只能通过Controller传递。 2、 Controller可以直接与Model对话(读写调用Model),Model通过Notification和KVO机制与Controller间接通信。 3、 Controller可以直接与View对话。通过Outlet,直接操作View,Outlet直接对应到View中的控件,View通过action向Controller报告事件的发生(如用户Touch我了)。Controller是View的直接数据源(数据很可能是Controller从Model中取得并经过加工了)。Controller是View的代理(delegate),以同步View与Controller。
1、 在定义代理时,继承基类的代理。如下图 代理SPCTableViewDataSource继承基类ZDBSimulateTableViewDatasource。
2、 定义代理实现对象。如idspcDataSoruce;
3、 在.m文件中重写set方法,给对象赋值并传值。_spcDataSoruce为当前代理的对象。而self.dataSource为父类的对象。
新闻热点
疑难解答