构造器模式-iOS实践

构造器模式(builder)

意图
将一个复杂对象的构建与表示分离,使得同样的构建过程可以创建不同的表示
适用范围
创建复杂对象的算法独立于对象的组成部分和装配方式

实践-富文本生成器

富文本是一个属性非常多的对象,系统api构造过程繁杂,用block做个简单封装,可以像下面这样链式调用

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    AttributeStringBuilder *builder = AttributeStringBuilder.new;
    builder.text(@"我是").color(UIColor.greenColor).font([UIFont systemFontOfSize:20]).commit();
    builder.text(@"构造器模式").color(UIColor.redColor).font([UIFont systemFontOfSize:30]).commit();
    builder.text(@"的演示").color(UIColor.blueColor).font([UIFont systemFontOfSize:20]).commit();

    UILabel *label = [[UILabel alloc] init];
    label.attributedText = builder.result;
    [self.view addSubview:label];
    [label sizeToFit];
    label.center = CGPointMake([UIScreen mainScreen].bounds.size.width * 0.5, 100);
}

展示如下:


像masonry也是用的构造器模式,前提是对象够复杂,否则就有些得不偿失了,本文demo地址

你可能感兴趣的:(构造器模式-iOS实践)