当前位置: 首页 > 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.yayakq.cn/news/701096/

相关文章:

  • 企业网站的规划与建设ppt建设工程信息哪个网站有详细信息
  • 专业h5网站建设教程可视化平台开发
  • 专做外贸库存的网站合肥个人做网站
  • 求个免费网站后台登陆wordpress
  • 网站做的漂亮的企业php公司网站
  • 银川百度做网站多少钱建站网络公司
  • 物流相关网站视频社区app源码
  • 广西网站建设服务好做网站都需要考虑哪些
  • 漳州网站建设到博大赞手机商城软件下载
  • 泉州建站服务wordpress主题 外贸
  • 免费vi模板网站discuz二次开发
  • 豌豆荚app下载seo一般包括哪些内容
  • 洋洋点建站小程序图片制作
  • 网站设置屏蔽广告三亚
  • 曲阳网站建设在哪网站死链检查
  • 网站开发实训室企业网站开发技术期末试题
  • 建设网站用什么网络好建设工程168网手机版下载
  • 诸暨网站制作洛阳霞光网络建站
  • 潍坊网站模板在哪wordpress首页模板修改那个文件名
  • 茶山镇仿做网站网站5建设需要学什么条件
  • 河北省住房与建设厅网站首页做ppt找图片的网站
  • 哪个网站可以做照片分享长沙sem推广
  • 东莞网站seo公司wordpress 配置ckplayer
  • 制作一个网站需要多久外贸企业网络推广
  • mvc5 网站开发之美 pdf汽车之家官网首页
  • 什么网站可以做装修效果图的手机端设计
  • 视频网站怎么建设no.7 wordpress 破解
  • 南山老品牌网站建设wordpress getfooter
  • 横沥镇网站建设公司成为网站有哪些网址?
  • 坪山网站的建设什么行业适合做网站推广