目录

一、练习题

二、小结


一、练习题

1. 蜜雪冰城有柠檬水和茉莉绿茶,茶百道也有柠檬水和茉莉绿茶,请用仓颉代码模拟实现该结构。

类图

核心代码

package DesignPattern.abstractfactory

// 抽象产品
public interface Drink {
    func getDrink(): Unit
}

class MXBCLemonWater <: Drink{
    public override func getDrink() {
        println("蜜雪冰城: 柠檬水")
    }
}

class CBDLemonWater <: Drink{
    public override func getDrink() {
        println("茶百道: 柠檬水")
    }
}

// 抽象产品
public interface Tea {
    func getTea():Unit
}

class MXBCTea <: Tea{
    public override func getTea() {
        println("蜜雪冰城: 茉莉绿茶")
    }
}

class CBDTea <: Tea{
    public override func getTea() {
        println("茶百道: 茉莉绿茶")
    }
}

// 抽象工厂
public interface DrinkFactory {
    func createDrink(): Drink
    func createTea(): Tea
}

public class MXBCFactory <: DrinkFactory {
    public override func createDrink(): Drink {
        return MXBCLemonWater()
    }

    public override func createTea(): Tea {
        return MXBCTea()
    }
}

public class CBDFactory <: DrinkFactory {
    public override func createDrink(): Drink {
        return CBDLemonWater()
    }

    public override func createTea(): Tea {
        return CBDTea()
    }
}

测试代码

package DesignPattern
import DesignPattern.abstractfactory.*

main(): Int64 {
    MXBCFactory().createDrink().getDrink()
    MXBCFactory().createTea().getTea()
    CBDFactory().createTea().getTea()
    CBDFactory().createDrink().getDrink()

    return 0
}

二、小结

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

Logo

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

更多推荐