Oc单例模式,委托模式

深入理解设计模式:单例模式与委托(代理)模式
设计模式是某个具体编程问题的通用化,可以复用的解决方案
                   •常见的设计模式有:单例模式、委托(代理)模式、观察者模式、职责链模式等等

             单例模式使用场景
         •经常用于设计约束或者为了控制对有限资源的访问
         •此种问题的解决方案称为单例,是一个确保不会创建多于一个类的实例
         •单例模式在第一次调用该类时创建一个单一的全局实例,以后再创建实例时都是得到的第一次创建的那个全局实例
           eg:
       #import “Monitor.h"

@implementation Monitor
static Monitor *instance;//静态全局变量 +(id)getInstance{    @synchronized(self){  //同步关键字,防止多线程并发访问       if (!instance) {          instance = [[Monitor alloc]init];        }    }    return instance; } //防止对象通过alloc创建对象 +(id)allocWithZone:(NSZone *)zone{     @synchronized(self){  //同步关键字,防止多线程并发访问        if (!instance) {            instance = [Monitor allocWithZone:zone];        }    }    return instance; } //防止调用copy方法创建新对象 -(id)copy{    return self; } //防止通过releaseretainautorelease 释放对象 -(id)retain{    return self; } -(oneway void)release{    } -(NSUInteger)retainCount{    return NSUIntegerMax//2^32 -1 } -(id)autorelease{    return self; } @end
           委托是一种简单而强大的模式。在此模式中,程序中的一个对象代表另外一个对象执行某个动作,或者与之相互协作共同完成某个任务。
             Cocoa Touch广泛使用委托(delegate),它是负责为其他对象处理特定任务的类。通过委托,我们能够在某些预定义时间内为发布委托的类做一些工作。


            所谓代理,就是指一方授予他方代理权,他方依代理权与第三方进行法律行为,其行为后果由一方承担的一种民事法律制度。委托是一方将一定的事务委诸于另一方实施的法律制度。

             委托和代理的区别在于:第一,委托规范的是委托人和受托人双方之间的关系;而代理规范的是本人、代理人和第三人的关系。第二,代理关系中代理人代理的对象是进行意思表示和接受意思表示的行为;而委托中受托人代为实施的行为可以是法律行为,也可以是事实行为。第三,代理包括对内和对外两种关系,对内是代理人和被代理人之间的关系,而对外是代理人和第三人之间的关系;而委托只是委托人和受托人之间的关系。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值