目录

一、练习题

二、小结


一、练习题

1. 使用中介者模式,模拟联合国成员国信息。

类图

核心代码

package DesignPattern.mediator

// 抽象中介者
public abstract class Union {
    public func show(country: Country): Unit
}

// 抽象同事类
public abstract class Country {
    public Country(let union: Union) {}

    // 调用转发
    public func show() {
        union.show(this)
    }

    public func getInfo(): Unit
}

// 具体同事类
public class China <: Country {
    public China(union: Union) {
        super(union)
    }

    public override func getInfo() {
        println("中国是联合国世界贸易组织成员国之一")
    }
}

public class America <: Country {
    public America(union: Union) {
        super(union)
    }

    public override func getInfo() {
        println("美国是联合国世界贸易组织成员国之一")
    }
}

// 具体中介类
public class WTO <: Union {
    public var china = Option<China>.None
    public var america = Option<America>.None

    public override func show(country: Country) {
        if (country is China) {
            china.getOrThrow().getInfo()
        } else if (country is America) {
            america.getOrThrow().getInfo()
        }
    }
}

测试代码

package DesignPattern
import DesignPattern.mediator.*

main(): Int64 {
    // 定义中介者
    let union = WTO()
    // 定义同事对象
    let china = China(union)
    union.china = china
    let america = America(union)
    union.america = america

    china.show()
    america.show()
    return 0
}

二、小结

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

Logo

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

更多推荐