Swift 快速配置对象

2021-10-15  本文已影响0人  霸哥终结者

废话不多说,先上代码

/// 快速配置对象(全局函数)
public func config<T>(_ target: T, block: ((T) -> Void)? = nil) -> T { return target }

应用

/// 应用于普通对象
let contentView = config(UIView()) {
    $0.backgroundColor = UIColor.white
    // ...
}
/// 应用于懒加载
lazy var contentView =  config(UIView()) {
    $0.backgroundColor = UIColor.white
    // ...
}

对比传统方式

/// 传统对象创建和属性配置
let contentView = UIView()
contentView.background = UIColor.white
// ...
/// 传统懒加载
lazy var contentView: UIView = {
    let view = UIView()
    view.backgroundColor = UIColor.white
    return view
}()

看似好像没有简单多少,但是有几点好处:

  1. 代码更加简短,相比传统懒加载,不用创建对象容器,只管属性修改,不用管返回。
  2. 对象创建和属性配置代码写至一处,方便查找和修改。传统方式对象的创建和属性配置不在一处,可能需要翻阅大量代码。
  3. 全部以$0开头,简短统一,不用为起名问题而烦恼。

缺点:

  1. 若初始化对象所需要的参数不能简单的创建,则需要分开写。
  2. 若对象不需要设置属性,则会显得很奇怪。
上一篇 下一篇

猜你喜欢

热点阅读