iOS常用的设计模式

设计模式主要大概分成三类:

1.创建型:单例设计模式、抽象工厂设计模式

2.结构型:MVC 模式、装饰器模式、适配器模式、外观模式、组合模式

3.行为型:责任链设计模式、观察者设计模式,备忘录设计模式、命令设计模式

今天咱就对常用的设计模式谈一下我的观点

一、最主要也是猪常见的涉及模式MVC模式

这是现在众多开发者首选的涉及模式,他这要涉及View,model和controller

View:主要是扮演的界面展示于用户交互的角色,是模型的可视化的结果,编程中把所有的UIView对象以及其子控件都归结为视图。

model:主要扮演的是数据的存储,定义了怎么去操作它。

controller:控制器主要扮演的是协调所有工作的中间者,它访问model的数据并在view上展示出来,同时它还能监听事件 并根据要求来操作,比如viewcontroller

如下图(从网上当下来的)

iOS常用的设计模式_第1张图片
MVC

二、单例

首先单例的概念,从字面意思就可以理解,是单独存在的实例,也就是说该类在整个工程中只被创建一次,它通常用延时加载的方式值在第一次调用的时候创建一次,比如:[NSUserDefaults standardUserDefaults], [UIApplication sharedApplication], [UIScreen mainScreen], [NSFileManager defaultManager],所有的这些方法都返回一个单例对象,实现步骤如下:

1. 声明一个可以新建和获取单个实例对象的方法

2. 声明一个static类型的类变量

3. 声明一个只执行一次的任务

4. 调用dispatch_once执行该任务指定的代码块,在该代码块中实例化上文声明的类变量

5. 返回在整个应用的生命周期中只会被实例化一次的变量


三、观察者模式

首先什么是观察者模式呢?就是一个对象状态改变发送一个通知,所有对它进行观察的对象根据各自的要求做出相应的改变。

观察者模式下有两个机制

1.notifition机制

在通知机制中对某个通知感兴趣的所有对象都可以成为接受者。首先,这些对象需要向通知中心(NSNotificationCenter)发出addObserver:selector:name:object:消息进行注册,在投送对象投送通知送给通知中心时,通知中心就会把通知广播给注册过的接受者。所有的接受者不知道通知是谁投送的,不去关心它的细节。投送对象和接受者是一对多的关系。接受者如果对通知不再关注,会给通知中心发送removeObserver:name:Object:消息解除注册,以后不再接受通知。(ps:这段话内容摘抄自MexiQQ的博客)

2.KVO机制(Key-Value-Observing)

KVO和notifition机制一样,都是用来观察某一对象的改变,自身做出相应的改变,不同的是该机制下观察者的注册是在被观察者的内部进行的,不同于通知机制(由观察者自己注册),需要被观察者和观察者同时实现一个协议:NSKeyValueObserving,被观察者通过addObserver:forKeypath:options:context方法注册观察者,以及要被观察的属性。

四、委托模式

委托模式就是一个类创建一个委托(代理方法/也叫协议)并且拥有一个代理的对象的指针,代理对象只需要遵循协议,并实现协议中的方法,这样就完成了委托模式,通过委托模式可以实现类与类之间的传值(回调传值),举个例子(原理)比如说一个广播站需要发送一条广播,它就创建一条协议(能播放它这个频段的广播的收音机并播放这段广播)通过这条协议把广播传送出去,所有的收音机,只要有能接收它这个频段的收音机都能成为广播站的代理对象,只要播放这个广播那么久完成了委托模式。同样也可以用这个方法实现回调。比如小明妈妈委托小明打酱油,小明向妈妈要跑腿费。登录界面和注册界面的回调传值。



你可能感兴趣的:(iOS常用的设计模式)