Java SE 拓展篇 P1 用接口完成信息广播(ISpeaker,IListener)

1 ISpeaker和IListener

1 从演讲者到听众广播信息

在某些情况下,我们需要将一个信息从一个类的对象传播给若干个特定对象,如在聊天室这个应用场景中,服务器得知有人上线,则服务器要将刚上线的人的信息(昵称/ID)广播给所有在线的客户端,这个过程就完成了一次信息的广播,发送者是一个类的某个对象,接收者是特定的群体

这个过程的发送者就是演讲者Speaker,接收者就是听众Listener,通过这种机制,我们让服务器实现ISpeaker接口成为演讲者让在线的客户端实现IListener接口成为听众

这样只要演讲者发布信息,那么所有合法的听众都会收到相同的信息,演讲者更改信息内容,听众们收到的内容也会变化,采用这种机制能灵活的一对多的发送信息

2 定义接口

(1) ISpeaker

ISpeaker即演讲者需要实现的接口,作为演讲者,它至少需要三个抽象方法

1,将听众加入队列(这里的听众必须实现IListener才有资格加入队列)
2,将听众移出队列(队列中的听众是特定群体,根据需求更改这个群体)
3,广播消息(将消息发布给处于队列中的所有人)

在这里插入图片描述

(2) IListener

IListener即听众需要实现的接口,作为听众,它至少需要一个处理消息的抽象方法

1,接收演讲者发布的信息并处理

在这里插入图片描述

2 测试与总结

1 实现信息的广播

做两个实体类一个实现ISpeaker作为演讲者,一个实现IListener作为听众,再做一个测试类广播信息

Speaker:
在这里插入图片描述
Listener:
在这里插入图片描述
Test:
在这里插入图片描述
可以看到被加入到了听众队列的Listener类对象们成功接收到了Speaker类对象发布的信息,并作出了处理

2 小结

对于一对多广播信息的机制,不仅仅可以用来发送一个字符串,也可以传递参数,对象等等,当触发特定的机制时,演讲者广播的信息被所有处于队列中的听众所接收来进行处理,作出响应

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值