结构型之二-桥模式

Bridge(桥模式)

把抽象层次结构从其实现中分离出来,使其能够独立改变。抽象层定义了提供客户端使用的上层抽象接口。实现层次结构定义了供抽象层次使用的底层接口。实现类的引用被封装与抽象层的实例中。

比如项目中Web与iOS/android的交互。Web只负责一套抽象的接口(Abstraction),在iOS环境和安卓环境有不同的实现(Implementor)来实现对应的功能,具体如何实现Web压根不用管。

VC.m

HCDPhone *phone = [[HCDNokiaPhone alloc]init];
[phone play];
[phone work];
[phone game];

// 抽象层提供抽象接口
HCDNokiaPhone.m

@implementation HCDNokiaPhone
@synthesize gameSoft = _gameSoft;
@synthesize workSoft = _workSoft;
@synthesize playSoft =_playSoft;

-(instancetype)init{
    self = [super init];
    if (self) {
        _gameSoft = [[HCDGameSoftware alloc]init];
        _workSoft = [[HCDWorkSoftWare alloc]init];
        _playSoft = [[HCDPlaySoftWare alloc]init];
    }
    return self;
}
-(void)work{
    [self.workSoft runXcode];
    [self.workSoft runWord];
}
-(void)play{
    [self.playSoft runWeixin];
    [self.playSoft runQQ];
}
-(void)game{
    [self.gameSoft runQQDizhu];
    [self.gameSoft runQQMajiang];
}
@end

// 实现层定义了抽象层使用的底层接口
HCDSoftware.h

@protocol HCDSoftware <NSObject>
-(void)runQQ;
-(void)runWeixin;
-(void)runWord;
-(void)runXcode;
-(void)runQQDizhu;
-(void)runQQMajiang;
@end
typedef id<HCDSoftware> HCDSoftware;

设计图

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.初识桥接模式 将抽象部分与它的实现部分分离,使它们都可以独立地变化。 Abstraction:抽象部分的接口。...
    王侦阅读 932评论 0 7
  • 设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设...
    于先笙阅读 514评论 1 3
  • 是什么毅力让一个人这么久都不联系我啊 一个电话 一条短信 都没有 内心既惶恐 又害怕 更多的却是失落 难道我真的是...
    婴璎阅读 371评论 4 9
  • 今日得到 1.024|促销活动:想用最少的钱临门一脚,促使用户决心购买,怎么办? 营销大师科特勒说过:“没有降低2...
    Pheeb阅读 385评论 0 0
  • 活的明白 活的明白,是每个人的希求。不想昏昏噩噩的度过一生,能够很好的掌控自己的全局。在人生的赛场上能够将自己所学...
    4月风阅读 148评论 0 0