美文网首页
创建型之二-建造模式

创建型之二-建造模式

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

    Builder(建造模式)

    将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。它可以将复杂对象的建造过程抽象出来(抽象类别),使这个抽象过程的不同实现方法可以构造出不同表现(属性)的对象。

    SDWebImage的SDWebImageDownloader和SDWebImageDownloaderOperation就是director和builder之间的关系。前者不负责具体的下载操作,只负责管理builder,builder负责图片的具体下载。

    VC.m

    HCDPersonBuilderDirector *director = [[HCDPersonBuilderDirector alloc]init];
    HCDPresionBuilder builder = [[HCDPersonFatBuilder alloc]init];
    //为director指定builder
    director.builder = builder;
    //director发出构建的指令,builder负责具体的建造过程
    [director buildPerson];
    

    HCDPersonBuilderDirector.h // 主管类:管理对象及操作

    @interface HCDPersonBuilderDirector : NSObject
    @property(nonatomic, strong)HCDPresionBuilder builder;
    -(void)buildPerson;
    @end
    

    HCDPersonBuilderDirector.m

    @implementation HCDPersonBuilderDirector
    -(void)buildPerson{
        NSLog(@"===============director指挥builder开始建造====================");
        [self.builder buildPerson];
    }
    @end
    

    HCDPresionBuilder.h // builder 协议类

    @protocol HCDPresionBuilder <NSObject>
    -(void)buildHead;
    -(void)buildBody;
    -(void)buildArmLeft;
    -(void)buildArmRight;
    -(void)buildLegLeft;
    -(void)buildLegRight;
    - (void)buildPerson;
    @end
    typedef id<HCDPresionBuilder> HCDPresionBuilder;
    

    设计图

    相关文章

      网友评论

          本文标题:创建型之二-建造模式

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