当前位置: 首页 > news >正文

哈市最新公告南京seo优化

哈市最新公告,南京seo优化,沈营商环境建设监督局网站,上海小程序开发定制概念 创建一个中介来降低对象之间的耦合度,关系”多对多“变为“一对多”。 角色介绍 Mediator:抽象中介者,接口或者抽象类。ConcreteMediator:中介者具体实现,实现中介者接口,定义一个List管理Colleagu…

概念

创建一个中介来降低对象之间的耦合度,关系”多对多“变为“一对多”。

角色介绍

  • Mediator:抽象中介者,接口或者抽象类。
  • ConcreteMediator:中介者具体实现,实现中介者接口,定义一个List管理Colleague对象。
  • Colleague:抽象同事,定义同事类的接口或者抽象类,保存中介者对象,实现同事类通用的方法。
  • ConcreteColleague:具体同事类,实现抽象同事类。通过中介者间接完成具体同事类之间的通信。

UML

中介者

代码实现

interface UserAbs {fun enter(chatRoom: ChatRoom)fun send(msg: String)fun receive()
}data class User(val name: String) : UserAbs {private var room: ChatRoom? = nulloverride fun enter(chatRoom: ChatRoom) {room = chatRoomroom?.enter(this)}override fun send(msg: String) {room?.operation(this, msg)}override fun receive() {room?.getMessage()?.forEach {println(it)}}
}
class ChatRoom(val id: Int) {private val messages = ArrayList<String>()fun enter(user: User) {println("${user.name}进入聊天室$id")}fun operation(user: User, msg: String) {val log = "${user.name}说了$msg"println(log)messages.add(log)}fun getMessage(): MutableList<String> {return messages}
}fun main() {val room = ChatRoom(1)val user1 = User("张三")val user2 = User("李四")val user3 = User("王八")user1.enter(room)user2.enter(room)user3.enter(room)user1.send("你好")
}

优缺点

优点

  • 简化对象间的关系
  • 提高灵活性
  • 促进低耦合

缺点

  • 中介者过于庞大

应用场景

适用于复杂通信对象组,重用对象。

  1. 聊天应用,聊天室
  2. 空中交通控制系统
  3. GUI框架,MVC架构 Controller是中介者,根据View的请求Model
  4. 工作流引擎,协调用户界面、事件之间的关系

总结

中介者模式核心在于引入中介者类,承担中转和协调作用。MediatorLiveData就是使用了中介者模式,可用来管理、合并多个数据源。它的源码可以参考:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YYivHGrz-1691306533508)(https://juejin.cn/post/7054720521031647245)]
参考:

  • 基于MediatorLiveData实现红点的统一管理
  • MediatorLiveData使用
  • 中介者模式及其应用场景
http://www.khdw.cn/news/30740.html

相关文章:

  • 建设网站服务器 知乎小米的推广软文
  • 网站开发得花多少钱seo型网站
  • 新建网站做优化seo云优化平台
  • 前端做网站如何调接口软文案例大全300字
  • wordpress皮肤设置漯河seo推广
  • 杨凌做网站的人民日报新闻
  • 新零售六大模式广州网站运营专注乐云seo
  • 泰安网站建设广告企业官网
  • 做网站树立品牌形象外链查询
  • 房产网站建设接单搜索引擎排名google
  • 新洲建设投标网站网站流量分析
  • 网站建设如何网络销售东莞seo整站优化
  • 网站开发的报告什么平台引流最快
  • 搭建手机网站新品推广计划与方案
  • 把网站做到wordpress里面去清远新闻最新消息
  • 做网站将文字放在图片上博客网站注册
  • 实现web服务以发布公司网站百度一下电脑版
  • java新手代码大全seo技术教程网
  • 网站建设属于什么费2023引流软件
  • 注册网站域名app注册推广团队
  • 深圳 网站建设培训学校全网关键词优化公司哪家好
  • 做网站用的hu软件百度seo推广怎么收费
  • 深圳站建在边境热搜榜上2023年热搜
  • 安阳吧seo营销工具
  • 高中毕业学网站开发谷歌下载官网
  • wordpress版权图片谷歌seo推广
  • 新手搭建网站教程软件排名工具
  • 长沙网站优化公司营销推广工作内容
  • 网站logo上传商城系统开发
  • 黑白高端网站建设上海优化公司有哪些