实例一:猫、狗与老鼠

假设猫是老鼠和狗的观察目标,老鼠和狗是观察者,猫叫老鼠跑,狗也跟着叫,使用观察者模式描述该过程。

类图:

代码:

import java.util.*;

public abstract class MySubject

{

protected ArrayList observers = new ArrayList();

public abstract void attach(MyObserver obs);

public abstract void detach(MyObserver obs);

public abstract void cry();

}

public class Cat extends MySubject

{

public void attach(MyObserver obs)

{

obs.add(obs);

}

public void detach(MyObserver obs)

{

obs.remove(obs);

}

public void cry()

{

for(Object obs:obs)

{

((MyObserver)obs).response();

}

}

东南大学Java设计模式_东南大学Java设计模式作业观察者模式相关推荐

  1. java 外部接口调用 设计模式_《Java设计模式》之接口模式

    -----------模式是思想的体现,而非具体的实现. 抽象的讲,类的接口是类允许其他类对象访问的方法与字段集.接口通常代表一种承诺,即方法需要实现接口方法名表示的操作,遵循代码注释和其他文档说明, ...

  2. 尚学堂java培训_送给 Java 自学者或者初学者的最全知识清单,2020 年 Java 就该这么学...

    最近逛知乎,发现有很多想自学 Java 或者 Java 初学者提问,不知道如何学习 Java?我接触 Java 快 8 年的时间了,一直从事 Java 开发工作,自己一直升级打怪,对于如何更好的学习 ...

  3. java书籍_学习Java最好的10本书,从入门到精通

    在当代,学习Java等编程课程的主要方式是视频资源,如果你想学,在网上五分钟之内就可以找到一堆学习视频,瞬间将你的硬盘填满.但是这些课程质量良莠不齐,对于小白来说很难辨别好坏. 但是书籍不同,书籍都是 ...

  4. 成都两年JAVA工程师_成都Java工程师学习路线

    成都Java工程师学习路线.java分成J2ME(移动应用开发),J2SE(桌面应用开发),J2EE(Web企业级应用),所以java并不是单机版的,只是面向对象语言.建议如果学习java体系的话可以 ...

  5. 图书借阅管理用java实现_用java实现图书管理系统。 - 惊觉...

    在学完java基础篇的时候,安排做了一个综合版的java基础项目,可以把之前学到的知识综合运用. 一.项目设计到的知识 1.MVC设计模式思想(分包) >项目分包 运用这种设计模式的优点: MV ...

  6. 易语言 java支持_开源Java客户端可以连接易语言服务器

    我们的服务端处理客户端的连接请求是同步进行的, 每次接收到来自客户端的连接请求后, 都要先跟当前的客户端通信完之后才能再处理下一个连接请求. 这在并发比较多的情况下会严重影响程序的性能, 为此,我们可 ...

  7. java安装_使用Java 9模块化来发布零依赖本机应用程序

    java安装 为什么我不能仅构建一个.EXE? 首次引入Java时,主流编程语言大多要么编译成独立的可执行文件(例如C / C ++,COBOL),要么在解释器中运行(例如Perl,Tcl). 对于许 ...

  8. java转账_使用Java模拟银行账户存、取款、转账功能

    半枯 package bank;import java.util.Scanner;/** * 1.建立一个银行账户类(Acount),具有建立新帐号.查询余额.存款.取款.转账 * 即从本账户把钱转给 ...

  9. java预期_预期. java的

    我有这段java代码.我是java中的菜鸟.. 错误: expected cfg = new Config; 码: import java.sql.Connection; import java.sq ...

  10. python能解密java的_实现Java加密,Python解密的RSA非对称加密算法功能

    摘要 因为最近业务需要使用到openssl的rsa非对称加密算法,研究了下它的使用方式,但是特殊在于前端分IOS和android两端,所以前端部门要求使用java给他们做一个加密工具包,但是因为服务端 ...

最新文章

  1. matlab欧拉迭代,matlab机械臂正逆运动学求解问题,使用牛顿-欧拉迭代算法
  2. 【好文收藏】k8s中Pod 无法正常解析域名:部署 DNS 调试工具排查
  3. jquery ajax json table 添加行,使用jQuery从AJAX响应构建表行(json)
  4. Swoole找不到telnet命令
  5. 深度学习(十五)——SPPNet, Fast R-CNN
  6. 解压ubi文件_Linux 文件压缩与解压相关
  7. Linux学习:第四章-vi编辑器
  8. 解决eclipse无法解析导入org.eclipse.swt库
  9. 状态栏和navigationbar 关联上,结构体总是通过被复制的方式在代码中传递,因此请不要使用引用计数。...
  10. spring定时器时间表达式
  11. 按键精灵python插件_按键精灵必须掌握的命令之插件命令
  12. 递归实现部门树形数据结构
  13. C#WinFormRS232串口工具
  14. Windows下通过注册表修改某个类型文件的默认打开方式和文件图标
  15. 【Docker】fuse: device not found, try ‘modprobe fuse‘ first
  16. JavaScript 如何计算两个日期之间的天数
  17. pycharm如何增加运行时内存
  18. 微软Windows 11正式发布!(文末送书)
  19. Redis 系列文章导读
  20. LeetCode一周题解(20220328-20220403)

热门文章

  1. 设计师:设计师知识储备之设计流派(高技派、光亮派、白色派、风格派、极简主义、装饰艺术、后现代、解构主义、新现代主义 )之详细攻略
  2. 华为C8813精简三网破解刷机包 基于B177最新版制作 自带归属地
  3. 转载viso2013破解
  4. STM32CUBEIDE(16)----内部Flash读写
  5. 配置IBM WebSphere MQ及注意事项
  6. Mindspore的快速上手
  7. PHP 本地开发环境 docker 安装
  8. java毕业设计刷题题库系统mybatis+源码+调试部署+系统+数据库+lw
  9. 撤稿声明澎湃计算机应用,“最霸气撤稿声明”论文作者:会继续研究,感谢关心...
  10. java枚举类型enum用法_深入理解java枚举类型enum用法