iOS基本设计模式

一、MVC(Model-View-Controller)

模型-视图-控制器 模式会将你的代码分割成几个部分。
模型:定义程序的数据引擎,负责数据的完整性;
视图:定义程序的用户界面,不过问界面上的数据的出处;
控制器:充当模型和视图之间的桥梁,实现数据和显示的更新;

二、Delegattion 代理模式—这个设计模式有助于一个对象的数据传输到另一个对象

委托模式可以对复杂的对象进行修改而不需要子类化,与子类化不同的是,你可以照常使用复杂对象,而将对其行为进行修改的定制代码放在另一个对象中,这个对象称为委托对象,复杂对象需要在预先定义好的时点上调用委托对象的方法,使其有机会进行定制代码。 deletagation 通过protocol 进行实现。

三、Target-action 这个设计模式用按钮,等控件把用户的交互变成代码,让程序可以执行

控件通过目标-动作模式将用户的交互通知给你的应用程序。当用户以预先定义好的方式(比如轻点一个按键)进行交互时,控件就会将消息(动作)发送给你指定的对象(目标)接受到动作消息后,目标对象就会以恰当的方式进行响应(比如按键时更新应用程序的状态)。

四、Block objects —-用blocks去实现回调和异步

五、Sandboxing—所有的iOS应用程序是放在一个沙盒的,这是为了保护其他应用程序和系统的安全。沙盒的结构影响应用程序文件的放置,数据的备份。还影响其他程序的一些功能。

由于安全的原因,iPhone OS将每个应用程序(包括其偏好设置信息和数据)限制在文件系统的特定位置上,这个限制是安全特性的一部分,称为应用程序的“沙箱”。沙箱是一组细粒度的控制,用于限制应用程序对文件、偏好设置、网络资源和硬件等的访问。在iPhone OS中,应用程序和它的数据驻留在一个安全的地方,其他应用程序都不能进行访问。在应用程序安装之后,系统就通过计算的到一个不透明的标识,然后基于应用程序的根目录和这个标识构建一个指向应用程序目录的路径。

六、观察者模式 一般为model层对,controller和view进行的通知方式,不关心谁去接收,只负责发布信息。

6.1 Delegation:(一对一)苹果官方经常用这个模式,主要用于回传,比如模态回传数据。
6.2 Callback blocks:(一对一)耦合更松,同时让相关联的代码在一起,消息发出者数量很多时比delegation更方便。
6.3 Notification Center:(一对多)可能是一个对象给多个观察者发出“通知”时最常用的方法。耦合非常松,甚至可以把通知发到全局们不需要对调度者的引用。
6.4 Key-Value-Observing(KVO):(一对多)不需要被观测的对象主动“发出通知”,只需要被观测的键(属性)支持Key-Value-Coding(KVC)。这种模式比较含混,而且标准API比较繁复,所以一般不推荐使用。
6.5 Signals:(一对多)这是ReactionCocoa的核心。它允许结合关键内容的链式调用,用这种方法逃离回调深渊(嵌套过多的回调)。

七、单例模式:确保程序运行期某个类,只有一份实例,用于进行资源共享控制。

确保使用者只能通过 getInstance方法才能获得,单例类的唯一实例。java,C++中使其没有公有构造函数,私有化并覆盖其构造函数。object c中,重写allocWithZone方法,保证即使用户用 alloc方法直接创建单例类的实例,返回的也只是此单例类的唯一静态变量。

设计模式的基本原则:
开闭原则:一个模块的修改应该对扩展开放而对修改关闭。
接口隔离原则:尽量让接口执行必要的事情。
里氏代换原则:指子类与父类可以相互替换,子类可以用父类的方法,父类乐意用子类的方法。
依赖倒转原则:抽象不依赖细节,细节依赖于抽象:针对接口。
合成/聚合复用:在开发的过程中,尽量不要使用继承,而是从一个类中扩展出一个方法,将这个类 当作主键合成,组合起来使用。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值