结构型之五-外观模式

Facade(外观模式)

为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。

基金经理帮我们管理不同的股票。基金经理作为外观,我们只需要让基金经理买或者卖就好,基金经理再帮我们处理不同股票的卖或者买。
项目中有不同的网络请求,对于每一种类型的网络请求都封装到一个固定的文件里处理,比如公用参数添加,返回数据的处理。然后再通过一个外观文件引入,直接就可以使用了。从使用来说,所有网络请求的差异都被外观文件处理了。
还有比如AFN对于NSURLSession的不同系统版本的处理。

VC.m

HCDFound *found = [[HCDFound alloc]init];
[found buyFund];
[found sellFund];

HCDFound.h // 外观类

@interface HCDFound : NSObject
-(void)buyFund;
-(void)sellFund;
@end

HCDFound.m

@interface HCDFound()
@property(nonatomic,strong)HCDstock1 *stock1;
@property(nonatomic,strong)HCDstock2 *stock2;
@property(nonatomic,strong)HCDstock3 *stock3;
@end
@implementation HCDFound
-(instancetype)init{
    self = [super init];
    if (self) {
        _stock1 = [[HCDstock1 alloc]init];
        _stock2 = [[HCDstock2 alloc]init];
        _stock3 = [[HCDstock3 alloc]init];
    }
    return self;
}
-(void)buyFund{
    [self.stock1 buy];
    [self.stock2 buy];
    [self.stock3 buy];
}
-(void)sellFund{
    [self.stock1 sell];
    [self.stock2 sell];
    [self.stock3 sell];
}
@end

HCDstock1.h // 外观类中的一个子类

@interface HCDstock1 : NSObject
-(void)buy;
-(void)sell;
@end

HCDstock1.m

@implementation HCDstock1
-(void)buy{
    NSLog(@"买入股票1");
}
-(void)sell{
    NSLog(@"卖出股票1");
}
@end

设计图

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

推荐阅读更多精彩内容

  • 只见你穿过人海,来到我身边 只是个梦
    香菜五仁粽阅读 1,865评论 0 1
  • 1 天涯社区是1999年由邢明创办的,是一个虚拟网络社区,提供论坛、落格、相册、影音、站内消息、虚拟交易等等多种服...
    天日昭昭阅读 3,240评论 1 10
  • 临近毕业了,一个很要好的朋友一直在找工作,从去年上学期就开始找工作了,到现在还没有找到合适的工作,一直唉声叹气的。...
    3b22dbaa09cf阅读 5,086评论 0 3
  • 一 发单邀约: 您好,思维棋,央视采访的思维教育品牌。祝您工作愉快! (对方有问题,微笑回复:您好,我们在C区68...
    彭逊阅读 1,365评论 1 1