iOS中的一些设计模式

The Most Important Design Pattern: Model-View-Controller

理解model,view,controller之间的通讯方式


Delegation: Acting on Behalf of Another (Framework) Object 代理

被代理对象必须定义一个属性,用来保存对代理对象的引用(通常为weak)

同时应该定义一个代理对象要遵守的协议

Protocol: Enabling Communication Between Objects Not Related by Inheritance 协议




Notification Center: Notifying Interested Observers of an Event 通知中心

任何对象必须先向通知中心注册后,才能观察通知 。

注册的时候,必须用selector指定通知发送时调用的方法,该方法必须有一个变量,即通知对象

观察者也可以制定提交通知的对象。

通知中心与代理消息类似,都是在某事件发生时给任何对象发送消息。但是处理通知的方法与代理方法不同,不能返回值。

通知是异步而代理是同步

Target-Action: Encapsulating a Message to Be Sent When an Event Occurs

Key-Value Observing: Notifying an Observer When a Value Changes

KVO允许一个对象观察另外一个对象的属性,当属性变化时通知观察对象。

观察对象可以知道属性变化之前和之后的两个值,如果属性是一对多关系(数组对象),那么还可以获得其中发生变化的对象。

与通知中心不同的是,KVO通知发生在被观察对象和观察对象之间,而通知中心可能有多个潜在的观察者。


Other Framework Designs Based on Design Patterns


视图层次结构


响应链

The responder chain is a series of objects—mostly views, but also windows, view controllers, and the application object itself—along which an event or action message can be passed until one object in the chain handles the event. It thus is a mechanism for cooperative event handling. The responder chain is closely related to the view hierarchy.
















  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值