Swift设计模式之创建者模式

前端之家收集整理的这篇文章主要介绍了Swift设计模式之创建者模式前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

转自

原文

// 创建者模式
// 百度百科:其核心思想是将一个“复杂对象的构建算法”与它的“部件及组装方式”分离,使得构件算法和组装方式可以独立应对变化;复用同样的构建算法可以创建不同的表示,不同的构建过程可以复用相同的部件组装方式
// 设计模式分类:创建型模式

/// 创建者
class DeathStarBuilder {

    var x: Double@H_301_29@?
    var y: Double@H_301_29@?
    var z: Double@H_301_29@?

        /// 创建者闭包
    typealias BuilderClosure @H_301_29@= (DeathStarBuilder) @H_301_29@-> ()

    init(buildClosure: BuilderClosure) {
        buildClosure(self)
    }
}

/** * 创建对象 */
struct DeathStar : CustomStringConvertible {

    let x: Double
    let y: Double
    let z: Double

    init@H_301_29@?(builder: DeathStarBuilder) {

        if let x @H_301_29@= builder.x,y @H_301_29@= builder.y,z @H_301_29@= builder.z {
            self.x @H_301_29@= x
            self.y @H_301_29@= y
            self.z @H_301_29@= z
        } else {
            return nil
        }
    }

    var description:String {
        return "Death Star at (x:\(x) y:\(y) z:\(z))"
    }
}

let empire @H_301_29@= DeathStarBuilder { builder in
    builder.x @H_301_29@= 0.1
    builder.y @H_301_29@= 0.2
    builder.z @H_301_29@= 0.3
}

let deathStar @H_301_29@= DeathStar(builder:empire)

猜你在找的Swift相关文章