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

有关网站建设的文章句子优化网站标题名词解释

有关网站建设的文章句子,优化网站标题名词解释,阿里巴巴怎么建设网站首页,微信公众号怎么进行网站建设提示:观察者模式的代码实现、观察者模式的使用场景、观察者模式源码级别的应用、观察者模式的优点、 文章目录 前言一、定义二、类图三、代码实现四、应用场景五、源码级别的应用总结 前言 随着时间的推移,我现在越来越感觉自己的代码不够优雅了&#x…

提示:观察者模式的代码实现、观察者模式的使用场景、观察者模式源码级别的应用、观察者模式的优点、

文章目录

  • 前言
  • 一、定义
  • 二、类图
  • 三、代码实现
  • 四、应用场景
  • 五、源码级别的应用
  • 总结


前言

随着时间的推移,我现在越来越感觉自己的代码不够优雅了,相信有一部分博友跟我有同样的困扰,因此决定再学习记录一下相关的设计模式。今天就介绍一下设计模式-观察者模式


一、定义

模式定义:定义了对象之间的一对多依赖,让多个观察者对象同时监听某一个主题对象,当主题对象发生变化时,他的所有依赖者都会收到通知并更新。

二、类图

在这里插入图片描述

  • 其中subject 代表着主题对象。subject中的attach代表着添加观察者的方法(需要观察这个对象的时候加进来,不需要的时候移除)、detach代表着删除观察者的方法(不感兴趣的时候可以移除这个观察者)、notify代表着观察着发生变化的方法。
  • observer代表着观察着对象。他的update方法,就是主题对象改变了以后,观察者对象要改变的方法

三、代码实现

代码如下:

package com.zheng.observer;import java.util.ArrayList;
import java.util.List;/*** @author: ztl* @date: 2024/09/19 22:20* @desc: 观察着模式,测试类*/
public class ObserverTest {public static void main(String[] args) {MySuject subject = new MySuject();TaskAObserver taskAObserver = new TaskAObserver();TaskBObserver taskBObserver = new TaskBObserver();subject.addObserver(taskAObserver);subject.addObserver(taskBObserver);//        subject.notifyObserver("被观察的对象发生了改变"); // TaskAObserver start  TaskBObserver startsubject.removeObserver(taskBObserver);// 把B的task从监听的中去掉了,所以只有a继续观察了subject.notifyObserver("被观察的对象发生了改变"); // TaskAObserver start}
}/*** 定义一个类,这个就是被观察的对象*/
class MySuject{// 容器(也就是所有观察这个对象的观察者)private List<MyObserver> list = new ArrayList<>();// addpublic void addObserver(MyObserver myObserver){list.add(myObserver);}// removepublic void removeObserver(MyObserver myObserver){list.remove(myObserver);}// 具体的改变方法,就是被观察的对象发生改变的方法,public void notifyObserver(Object object){for (MyObserver myObserver : list){myObserver.update();}}
}/*** 观察者模式的接口,他下面可以有多少实现*/
interface MyObserver{void update();
}/*** 观察者的第一个实现类*/
class TaskAObserver implements MyObserver{@Overridepublic void update() {System.out.println("TaskAObserver start");}
}/*** 观察者的第二个实现类*/
class TaskBObserver implements MyObserver{@Overridepublic void update() {System.out.println("TaskBObserver start");}
}

四、应用场景

当更改一个对象的状态可能需要更改其他对象,并且实际的对象集事先未知或动态更改时,倾使用观察者模式

优点:
1.符合开闭原则
2.可以在运行时简历对象之间的关系

五、源码级别的应用

JDK中:
java util.Observable;Spring中:
org.springframework.context.ApplicationListener

总结

今天跟媳妇儿聊天的时候,就随口一提:现在看spring源码看的我瞌睡,昏昏沉沉的。媳妇儿问我,那你之前不困吗?我答:不,我之前不看源码(手动狗头)

http://www.hengruixuexiao.com/news/53624.html

相关文章:

  • 做网站一定要公司备案吗武汉大学人民医院精神卫生中心
  • dedecms企业网站上海关键词排名优化怎样
  • 微信网站特点应用商店aso优化
  • 亿创电力建设集团有限公司网站搜搜
  • 东莞市建设安监监督网站百度用户服务中心人工电话
  • 分类型网站建设网站seo报告
  • 苏州瑞熙网站建设免费关键词搜索工具
  • wordpress给管理员发送邮件黑帽seo技术论坛
  • 成都网站建设天府软件园房地产营销策略有哪些
  • 国产做爰网站上海单个关键词优化
  • 做测算的网站南昌seo排名扣费
  • 网站设计哪家专业网络营销案例分享
  • 天津今日最新疫情做网络优化的公司排名
  • 大连网站制作的公司哪家好宁波网站推广找哪家公司
  • 委托第三方建设网站应注意哪些竞价推广代运营
  • 网站建设大约需要多少钱安徽网站建设优化推广
  • 婚纱摄影类网站制作小程序的软件
  • 凡科做的网站手机版营销网页
  • 网站建设售后服务内容郑州网络营销与网站推广
  • 建设通网站武义巨合汪志刚seo查询seo
  • 建旅游网站多少钱百度百科查询
  • 如何查询网站接入商网站制作公司排行榜
  • wordpress支持空格键seo168小视频
  • 如何把网站推广出去东莞网络营销全网推广
  • 济南区网站开发软文代发
  • 做拍卖的网站有哪些软文媒体发稿平台
  • 做学校和企业对接的网站如何看待百度竞价排名
  • 网站建设与管理说课ppt重庆森林壁纸
  • 淘宝做的网站优化找做网站的公司
  • 北京网站百度推广百度热搜词排行榜