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

张北北京网站建设考拉seo

张北北京网站建设,考拉seo,服务器怎么租用,吴江盛泽建设局网站上一篇我们学习了 观察者模式。 观察者和被观察者接口都是我们自己定义的,整个设计模式我们从无到有都是自己设计的,其实,java已经内置了这个设计模式,我们只需要定义实现类即可。 下面我们不多说明,直接示例代码&am…

上一篇我们学习了 观察者模式。

观察者和被观察者接口都是我们自己定义的,整个设计模式我们从无到有都是自己设计的,其实,java已经内置了这个设计模式,我们只需要定义实现类即可。

下面我们不多说明,直接示例代码,例子依然同 观察者模式篇章,建议先去看看。

/*** 被观察者具体实现, 实现jdk自带的类** @author jiangkd* @date 2023/7/28 10:32:03*/
@Component
public class WeChatMessage extends Observable {private String message;/*** 模拟被观察者的主题更新, 通知所有观察者** @param message 主题更新*/public void updateMessage(String message) {this.message = message;// 通知所有观察者this.setChanged();this.notifyObservers(message);}}

两个观察者

/*** 具体的观察者1** @author jiangkd* @date 2023/7/28 10:07:34*/
@Slf4j
@Component
public class User1 implements Observer {/*** 观察者接收消息, 知道被观察者发生了变化, 自己进行相应的处理, 这里只是测试打印日志而已** @param o   主题, 被观察者主题类型* @param arg 接受到的消息*/@Overridepublic void update(Observable o, Object arg) {if (o instanceof WeChatMessage) {log.info("我是具体的观察者之一:{}", this.getClass().getSimpleName());log.info("被观察者发生变化, 接收消息:{}", String.valueOf(arg));}}
}
/*** 具体的观察者2** @author jiangkd* @date 2023/7/28 10:09:22*/
@Slf4j
@Component
public class User2 implements Observer {/*** 观察者接收消息, 知道被观察者发生了变化, 自己进行相应的处理, 这里只是测试打印日志而已** @param o   主题, 被观察者主题类型* @param arg 接受到的消息*/@Overridepublic void update(Observable o, Object arg) {if (o instanceof WeChatMessage) {log.info("我是具体的观察者之一:{}", this.getClass().getSimpleName());log.info("被观察者发生变化, 接收消息:{}", String.valueOf(arg));}}}

测试:

/*** @author jiangkd* @date 2023/7/28 10:37:36*/
@SpringBootTest(classes = DemoApplication.class)
@RunWith(SpringRunner.class)
@Slf4j
public class JdkObserverTest {@ResourceWeChatMessage weChatMessage;@ResourceUser1 user1;@ResourceUser2 user2;@Testpublic void test(){// 依然绑定被观察者和观察者weChatMessage.addObserver(user1);weChatMessage.addObserver(user2);weChatMessage.updateMessage("测试一下1!!");}}

执行结果记录日志:

2023-07-28 10:47:30.713 INFO 23796 — [ main] d.b.e.design_patterns.gczms.jdk.User2 : 我是具体的观察者之一:User2
2023-07-28 10:47:30.714 INFO 23796 — [ main] d.b.e.design_patterns.gczms.jdk.User2 : 被观察者发生变化, 接收消息:测试一下1!!
2023-07-28 10:47:30.714 INFO 23796 — [ main] d.b.e.design_patterns.gczms.jdk.User1 : 我是具体的观察者之一:User1
2023-07-28 10:47:30.714 INFO 23796 — [ main] d.b.e.design_patterns.gczms.jdk.User1 : 被观察者发生变化, 接收消息:测试一下1!!

然后测试注销其中一个观察者User1

@SpringBootTest(classes = DemoApplication.class)
@RunWith(SpringRunner.class)
@Slf4j
public class JdkObserverTest {@ResourceWeChatMessage weChatMessage;@ResourceUser1 user1;@ResourceUser2 user2;@Testpublic void tes2(){// 依然绑定被观察者和观察者weChatMessage.addObserver(user1);weChatMessage.addObserver(user2);weChatMessage.updateMessage("在干什么");log.info("========================================");weChatMessage.deleteObserver(user1);weChatMessage.updateMessage("你过来一下");}}

执行结果记录日志:

2023-07-28 10:48:38.946 INFO 17928 — [ main] d.b.e.design_patterns.gczms.jdk.User2 : 我是具体的观察者之一:User2
2023-07-28 10:48:38.947 INFO 17928 — [ main] d.b.e.design_patterns.gczms.jdk.User2 : 被观察者发生变化, 接收消息:在干什么
2023-07-28 10:48:38.948 INFO 17928 — [ main] d.b.e.design_patterns.gczms.jdk.User1 : 我是具体的观察者之一:User1
2023-07-28 10:48:38.948 INFO 17928 — [ main] d.b.e.design_patterns.gczms.jdk.User1 : 被观察者发生变化, 接收消息:在干什么
2023-07-28 10:48:38.948 INFO 17928 — [ main] d.b.e.d.gczms.JdkObserverTest : ========================================
2023-07-28 10:48:38.948 INFO 17928 — [ main] d.b.e.design_patterns.gczms.jdk.User2 : 我是具体的观察者之一:User2
2023-07-28 10:48:38.948 INFO 17928 — [ main] d.b.e.design_patterns.gczms.jdk.User2 : 被观察者发生变化, 接收消息:你过来一下

http://www.15wanjia.com/news/25408.html

相关文章:

  • 河南有名的做网站公司山东济南seo整站优化公司
  • 网站数据库连接错误百度网址大全官方网站
  • 聊城网站建设lchckj搜索引擎推广实训
  • wordpress 当前文章所属分类广州seo网站推广
  • 搭建网站的步骤有哪些青岛网站建设运营推广
  • 中国三大生产建设兵团seo什么意思
  • 毕业设计餐饮网站建设成都高新seo
  • 涿州建设局网签网站南宁百度seo优化
  • 百度竞价找谁做网站手机百度如何发布广告
  • 太原市给企业做网站aso优化吧
  • 北外网院网站建设作业超级外链工具源码
  • 网站风格网上如何做广告
  • 建设网站费用如何入账靠谱的免费建站
  • 企业网站建设合同应注意什么和生活app下载安装最新版
  • 邯郸信息港最新招聘信息2023兰州seo公司
  • 阿里巴巴网站建设的基本情况陕西疫情最新消息
  • 怎样创建旅游网站自己开发网站怎么盈利
  • 网站建设和销售有关吗搜索引擎优化常用方法
  • 利用业务时间做的网站与公司有关吗上海网络营销推广外包
  • 黑客编程软件昆明seo网站建设
  • 两学一做材料上哪个网站找semi
  • 怎么建造自己的网站软文广告有哪些
  • 小生意是做网站还是公众号西安seo王
  • 网站内页关键词密度网页推广怎么做
  • 河南网站建设哪里有网站数据
  • 网站开发软件开发项目专业营销团队外包公司
  • 宁波市网站集约化建设通知网站推广计划方法
  • 最新楼盘价格走势图大连seo优化
  • 上海专业网站建设公司今日新闻 最新消息 大事
  • 怎么为做的网站配置域名深圳网络推广公司哪家好