中介者模式(Mediator Pattern)、桥接模式(Bridge Pattern) 和 策略模式(Strategy Pattern)

中介者模式(Mediator Pattern)桥接模式(Bridge Pattern) 和 策略模式(Strategy Pattern) 都是常见的设计模式,它们解决不同类型的问题。我们将通过 Swift 示例来说明它们的使用场景,并附上简洁的图示。


1. 中介者模式(Mediator Pattern)

目的:中介者模式通过引入一个中介者对象,来减少类与类之间的直接耦合,避免多对多的依赖关系,使得系统中的类之间通过中介者进行交互。

使用场景

  • 当多个类之间的交互复杂且不易管理时,通过引入中介者模式可以减少各个类之间的依赖关系。
  • 适用于 UI 组件之间的交互,例如聊天系统中多个用户的消息传递,或多个模块之间的消息通知。

Swift 示例

假设我们有一个聊天系统,多个用户之间互相发送消息,使用中介者来协调消息的传递:

// 中介者协议
protocol ChatMediator {
    func sendMessage(_ message: String, from user: User)
    func addUser(_ user: User)
}

// 用户类
class User {
    let name: String
    var mediator: ChatMediator?
    
    init(name: String) {
        self.name = name
    }
    
    func sendMessage(_ message: String) {
        mediator?.sendMessage(message, from: self)
    }
    
    func receiveMessage(_ message: String) {
        print("\(name) received message: \(message)")
    }
}

// 中介者实现
class ChatRoom: ChatMediator {
    private var users: [User] = []
    
    func addUser(_ user: User) {
        users.append(user)
        user.mediator = self
    }
    
    func sendMessage(_ message: String, from user: User) {
        for u in users wher
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值