mvc模式

模型类

一个好的模型类应该使用独立于表现层的方式封装数据,模型类应该只引用其他模型类,不应该收用视图或控制器。模型类可能有一个委托恰好是一个控制器,但应该使用协议实现,这样它便不必引用特定的控制器。

在模型类中请尽量使用不可变的对象,不可变对象可以通过调用retain实现copy。因为对象无法改变,你不必创建一个真正的副本。

模型类是系统中最容易测试和重用的类,设计好它们是提高代码整体水平的最好方法。

视图类

视图类负责与用户交互,它们提供信息接受用户事件。可有一个恰好是控制器的委托。

硬件优化的轻量级视图类一般叫“layer”。

视图负责从用户接受事件,但不处理它们。当用户触碰视图,该视图可能提醒一个委托说明它已被触碰,但它不能执行逻辑或者修改其他视图,这些事务由控制器处理。

控制器类

模型和视图由控制器联系,控制器实现大部分应用程序逻辑。控制器往往是程序中最不可能重用的部分,因此关键的一点就是不允许视图和模型类直接引用它们。控制器也应该避免直接引用其他控制器。所谓“直接引用”,指的是引用特定类,引用通过控制器实现的协议是可行的。

一个常见的错误是允许许多对象直接引用应用程序委托。
//不要这样做,是错的
AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
Something *something = [appDelegate something];


访问全局对象更好的方式是单例模式。

模型-视图-控制器模式对于提高代码可重用性非常有效。正确的应用MVC有助于程序与Cocoa框架的融合并简化开发过程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值