目录

一、练习题

二、小结


一、练习题

1. 使用仓颉编程语言,模拟实现《燕云十六声》的捏脸。

类图

核心代码

package DesignPattern.builder

// 产品
public class Actor {
    Actor(private var face: String, private var eyes: String, private var nose: String) {}
}

// 抽象建造者
public abstract class ActorBuilder {
    protected let actor = Actor("", "", "")

    protected func builderFace(): Unit
    protected func builderEyes(): Unit
    protected func builderNose(): Unit
    
    protected func getActor(): Actor {
        return actor
    }
}

// 具体建造者
public class AngleActorBuilder <: ActorBuilder {
    protected func builderFace() {
        println("女神: 小脸")
    }
    protected func builderEyes() {
        println("女神: 大眼睛")
    }
    protected func builderNose() {
        println("女神: 高鼻梁")
    }
}

public class ManActorBuilder <: ActorBuilder {
    protected func builderFace() {
        println("男人: 中脸")
    }
    protected func builderEyes() {
        println("男人: 中眼睛")
    }
    protected func builderNose() {
        println("男人: 中高鼻梁")
    }
}

// 指挥者
public class ActorDirector {
    public ActorDirector(private let actorBulider: ActorBuilder) {}

    public func construct(): Actor {
        actorBulider.builderFace()
        actorBulider.builderEyes()
        actorBulider.builderNose()
        return actorBulider.getActor()
    }
}

测试代码

package DesignPattern
import DesignPattern.builder.*

main(): Int64 {
    ActorDirector(AngleActorBuilder()).construct()
    println()
    ActorDirector(ManActorBuilder()).construct()

    return 0
}

二、小结

本章为大家详细的介绍了仓颉设计模式中建造者模式练习题的内容,下一章,为大家带来单例模式练习题的内容。最后,创作不易,如果大家觉得我的文章对学习仓颉设计模式有帮助的话,就动动小手,点个免费的赞吧!收到的赞越多,我的创作动力也会越大哦,谢谢大家🌹🌹🌹!!!

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐