关于前阵子学习ios MVC设计模式的小结

关于前阵子学习ios MVC设计模式的小结,第1张

概述MVC模式是  Cocoa(Touch)的核心,其包含了一些基本的设计模式. 设计模式主要是运用面向对象特性编程的一些总结性的经验. Cocoa MVC 模式包括 适配器模式(委托Delegate就是适配器模式).组合模式,命令模式,中介者模式,策略模式,观察者模式.时间有限先只小结比较熟的三个模式,并讲一下在Cocoa中的示例,你会发现很多Cocoa类库遵照了很多之类的模式 1.组合模式是使用接

MVC模式是  Cocoa(touch)的核心,其包含了一些基本的设计模式. 设计模式主要是运用面向对象特性编程的一些总结性的经验. Cocoa MVC 模式包括 适配器模式(委托Delegate就是适配器模式).组合模式,命令模式,中介者模式,策略模式,观察者模式.时间有限先只小结比较熟的三个模式,并讲一下在Cocoa中的示例,你会发现很多Cocoa类库遵照了很多之类的模式

1.组合模式是使用接口(协议)的优秀例子,它使对象和对象的组合能被一致性看待.类图如下


Cocoa中UIVIEw就是使用组合模式的例子,在一个手机应用上,手机屏幕上满是UIVIEw视图或其派生类,它们是可以互相包含的,每一个视图或其视图的子类都可以有0到多个子视图.所有的这些视图,都是UIVIEw(这是多态了),不管是派生成UiSlider(滑块)还是UILabel(文本标签)还是UITextFIEld(文本输入框) 都能按祖宗的类型UIVIEw进行统一处理. 其中一个特性是参与到统一的响应者链(一致对待).

2.中介者模式,上类图

只看类图是难懂的,说明一下同事类,所谓同事类是一群相互引用的乱成一团麻的类,比如Controller们互相引用来进行视图切换控制的流程,如下

经过中介者模式处理,就变成下面这样子了:

是不是很清晰? 中介者引用了所有的同事类,负责它们的交互.自己不具有其它功能,仅仅负责那团乱麻,这就是面向对象的万物皆对象的封装,也就是说我们把所有同事类间的视图切换(或是其它的交互主题)的代码封装到一个类中,这个类叫中介者.它本身可能是一个庞大的switch-case结构块,这让它成为庞然大物,尽管如此,也比散乱在各处类中的交互代码好多了!



3观察者模式,上类图

观察者模式是一种发布-订阅模式,看类图就知道,是两个抽象类或接口之间的相互引用.其中一个接口当发布者,它的每个实现ConcreteSubject都代表一个主题,每个主题ConcreteSubject拥有一个观察者队列,所有观察者ConcreteObserver都是实现观察者接口的人,它们自己接收到主题通知后,自己有不同的实现方式.这不影响主题实现类向它们发送通知.只要有主题通知(一般通知Notification是一个类),ConcreteSubject把队列里的对象统统调用update方法,可能需要传一下Notification作为参数,就算通知完了,这是面向接口编程的好处.

在Cocoa中,NSNotificationCenter就是一个主题队列维护者,任何对象都可以在这里用参数定制相关主题,然后NSNotificationCenter在有情况就生成一个通知NSNotification(通知自己识别了主题),然后postNotification就完事了.

关于KVO,键值观察也是这个模式的示例,想了解的去看苹果的API,这里不赘述了.

总结

以上是内存溢出为你收集整理的关于前阵子学习ios MVC设计模式的小结全部内容,希望文章能够帮你解决关于前阵子学习ios MVC设计模式的小结所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1054367.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存