代理模式

阿呆每次交易都有黑衣人来代替,他们通过手机交流,阿呆才是幕后。


// 手机(共同的接口)
@protocol ShouJi <NSObject>

- (void)TanPan;// 联系

@end


// XiaoDi.h 接头人(代理)
#import "ShouJi.h"
#import "aDai.h"

@interface XiaoDi : NSObject <ShouJi>

@property (nonatomic,assign) aDai *delegate;// 存放实体

@end


// XiaoDi.m 
@implementation XiaoDi

- (void)TanPan
{
    [_delegate TanPan];// 去调用真正实现的函数
}

@end

// aDai.h 实体
#import "ShouJi.h"

@interface aDai : NSObject <ShouJi>

@end

// 
@implementation aDai

- (void)TanPan
{
    NSLog(@"阿呆才是幕后主使");// 真正的实现
}

@end

- (void)viewDidLoad
{
    [super viewDidLoad];
    // 客户端调用
    
    XiaoDi *xd = [[XiaoDi alloc] init];
    aDai *ad = [[aDai alloc] init];
    xd.delegate = ad;
    
    [xd TanPan];
}

优点:

可以封装真实实现的部分


适用性:


----------分割线-------

平时开发iOS时经常看见代理模式,但是写法是代理封装起来而具体实现空出来留给用户写,这样封装了流程。

如UITableview的delegate

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值