创建型之二-建造模式

2017-09-30  本文已影响7人  iOS_肖晨

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;

设计图

上一篇 下一篇

猜你喜欢

热点阅读