美文网首页
结构型之五-外观模式

结构型之五-外观模式

作者: iOS_肖晨 | 来源:发表于2017-09-30 15:54 被阅读7次

    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
    

    设计图

    相关文章

      网友评论

          本文标题:结构型之五-外观模式

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