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

网站建设 排行招标网官网入口

网站建设 排行,招标网官网入口,wordpress注明网站,jsp网站开发关键技术概念 创建一个中介来降低对象之间的耦合度,关系”多对多“变为“一对多”。 角色介绍 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.yayakq.cn/news/713595/

相关文章:

  • 能够做二维码网站搜易网优化的效果如何
  • 网站移动端适配怎么做潍坊企业网站价格
  • 网站seo怎么做知乎百度平台商家订单查询
  • php中switch做网站微信运营模式
  • 住房和城乡建设部网站关于污水运行负荷率要求的文件网站建设首选易网宣
  • 浦东新区专业网站建设线上营销是什么意思
  • 鄞州seo整站优化服务网站开发全过程
  • 网站开发常用语言的优劣势哪个网站做脚本
  • 关键词查询爱站网域名卖给别人有风险吗
  • 网站建设费属于广告费广州海珠区房价
  • 广州建设工程交易中心电话百度seo收录软件
  • 企业营销类专业网站seo做网站赚钱吗
  • 雄安做网站网络结构分几层
  • 漏惹网站做找电子产品组装代加工
  • php服装网站模板网站设计英文报告
  • 有多少个网站wordpress 文章 作者
  • 质量检测中心培训网站使用他人商标做网站搜索词
  • 学做实体店网站温州网站搭建
  • 南山网站建设哪家好宁波做网站设计
  • 邯郸市建设局官方网站淘宝网站建设的目标是什么意思
  • 官方网站建设哪儿有erp管理软件开发公司
  • 所有购物网站的名字wordpress加载模板
  • 网站设计广州青岛网站制作定制
  • 网站建设需经历的步骤网站推广百度优化
  • 网站建设 英语公司使用威联通nas做网站存储
  • 让别人做网站的步骤临淄58同城招聘信息网
  • 网站编辑做appuzi粉丝做的网站
  • 龙岗网站建设报价个人网站设计文字内容模板
  • 白云网站建设公推广普通话宣传语手抄报
  • 微信微网站模板下载中天建设集团有限公司简介