client-director-builder
将一个复杂对象的构建与它的表现分离,使得同样的构建过程可以创建不同的表现。
生成器模式能够帮助构建涉及部件与表现的各种组合的对象。
@implementation CharacterBuilder
- (CharacterBuilder *)buildNewCharacter {
_character = [[Character alloc] init];
return self;
}
- (CharacterBuilder *)buildStrength:(float)value {
_character.strength = value;
return self;
}
- (CharacterBuilder *)buildStamina:(float)value {
_character.stamina = value;
return self;
}
- (CharacterBuilder *)buildIntelligence:(float)value {
_character.intelligence = value;
return self;
}
@end
Client
实例化一个CharacterBuilder
,调用其方法定制charactor
,最后再通过CharacterBuilder
实例把自己的character
返回给Client
。