美文网首页
结构型之六-代理模式

结构型之六-代理模式

作者: iOS_肖晨 | 来源:发表于2017-09-30 10:46 被阅读12次

Proxy(代理模式)

为其他对象提供一种代理以控制对这个对象的访问。
UITableView的delegate和dataSource,都是通过代理对象来控制对UITableView的访问。

VC.m

HCDschoolGirl *girl = [[HCDschoolGirl alloc]init];
girl.name = @"哈哈哈哈哈";
HCDproxy *proxy = [[HCDproxy alloc]initWithSchoolGirl:girl];
[proxy giveFlowers];
[proxy giveDolls];
[proxy giveChocolate];

HCDgiveGift.h // 方法列表

@protocol HCDgiveGift <NSObject>
///  送洋娃娃
- (void)giveDolls;
///  送鲜花
- (void)giveFlowers;
///  送巧克力
- (void)giveChocolate;
@end

HCDproxy.h // 代理类

@interface HCDproxy : NSObject<HCDgiveGift>
-(instancetype)initWithSchoolGirl:(HCDschoolGirl *)schoolGirl;
@end

HCDproxy.m

@interface HCDproxy ()
@property (strong, nonatomic) HCDpursuit *pursuit;
@end
@implementation HCDproxy
- (instancetype)initWithSchoolGirl:(HCDschoolGirl *)schoolGirl {
    self = [super init];
    if (self) {
        self.pursuit = [[HCDpursuit alloc] initWithSchoolGirl:schoolGirl];
    }
    return self;
}
- (void)giveDolls {
    [self.pursuit giveDolls];
}
- (void)giveFlowers {
    [self.pursuit giveFlowers];
}
- (void)giveChocolate {
    [self.pursuit giveChocolate];
}
@end

HCDpursuit.h // 实现类

@interface HCDpursuit : NSObject<HCDgiveGift>
-(instancetype)initWithSchoolGirl:(HCDschoolGirl *)schoolGirl;
@end

HCDpursuit.m

@interface HCDpursuit ()
@property(nonatomic,strong)HCDschoolGirl *schoolGirl;
@end
@implementation HCDpursuit
-(instancetype)initWithSchoolGirl:(HCDschoolGirl *)schoolGirl{
    self = [super init];
    if (self) {
        _schoolGirl = schoolGirl;
    }
    return self;
}
-(void)giveChocolate{
    NSLog(@"送你巧克力%@",self.schoolGirl.name);
}
-(void)giveDolls{
    NSLog(@"送你洋娃娃%@",self.schoolGirl.name);
}
-(void)giveFlowers{
    NSLog(@"送你玫瑰花%@",self.schoolGirl.name);
}
@end

设计图

相关文章

  • 结构型之六-代理模式

    Proxy(代理模式) 为其他对象提供一种代理以控制对这个对象的访问。UITableView的delegate和d...

  • Android进阶之光——设计模式(结构型设计模式)

    结构型设计模式 结构型设计模式是从程序的结构上解决模块之间的耦合问题 代理模式 代理模式也被称为委托模式。 定义:...

  • 【设计模式】结构型设计模式汇总

    结构型设计模式汇总 结构型设计模式名称 结构型设计模式主要包括 7 大类: 代理模式 桥接模式 装饰器模式 适配器...

  • 设计模式之代理模式

    设计模式之代理模式 简介 代理模式是结构型设计模式。 当无法或不想直接访问某个对象或访问某个对象存在困难时可以通过...

  • 设计模式之结构型模式

    3、设计模式之结构型模式 3.1 代理(Proxy)模式 3.1.1 引入案例: 前阵子疫情期间,为了打发时间竟然...

  • Java设计模式——代理模式

    Java设计模式之代理模式 这期式结构型模式中的最后一个,这么多结构型模式会给程序设计的过程中带来很多便利,也会带...

  • Android设计模式——代理模式

    1.代理模式介绍 代理模式(Proxy Pattern),是七大结构型设计模式之一。 2.代理模式的定义 ...

  • 结构型模式:享元模式

    文章首发:结构型模式:享元模式 七大结构型模式之六:享元模式。 简介 姓名 :享元模式 英文名 :Flyweigh...

  • 结构型模式

    简介 将类或对象按某种布局组成更大的结构。它分为类结构型模式和对象结构型模式。结构型模式分为:代理模式、适配器模式...

  • 14.代理模式(结构型)

    代理模式(结构型) 代理模式是常用的结构型设计模式之一,当无法直接访问某个对象或访问某个对象存在困难时可以通过一个...

网友评论

      本文标题:结构型之六-代理模式

      本文链接:https://www.haomeiwen.com/subject/uprgextx.html