- 浏览: 205878 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (397)
- j2se (28)
- nio (3)
- 易错点 (3)
- 面试ssh (9)
- ssh整合 (11)
- jbpm+spring (2)
- js (15)
- 高级技术 (59)
- swing (3)
- 数据库 (16)
- hibernate (18)
- spring (19)
- 开发网站知识点 (9)
- jbpm (4)
- json (5)
- 设计模式 (22)
- 自定义标签 (1)
- j2ee (9)
- lucene (3)
- cahce (11)
- maven (5)
- html5 (1)
- 多数据源 (10)
- 页面聊天 (9)
- 富客户端 (1)
- android (13)
- aop+拦截器+jms (13)
- 框架整合 (1)
- 非阻塞io (24)
- 暂时不看 (13)
- webservice (3)
- oracle (3)
- 算法 (4)
- 协程 (2)
- netty (1)
- 爬虫 (0)
- 高级基础 (1)
- JVM调优总结 (12)
- 知识点技巧 (1)
- REST (0)
- 基础 io (2)
- dubbo (8)
- 线程 (1)
- spring源码 (2)
- git (1)
- office (2)
最新评论
-
sjzcmlt:
,写的挺好的啊
一个完整的负载均衡的例子 . -
他大姨妈:
网上大部分例子都是直接通过IdleStateHandler来实 ...
Netty的超时机制 心跳机制
观察者模式
- 博客分类:
- 设计模式
public interface Observer { public void update(); }
public class Observer1 implements Observer { @Override public void update() { System.out.println("observer1 has received!"); } }
public interface Subject { /*增加观察者*/ public void add(Observer observer); /*删除观察者*/ public void del(Observer observer); /*通知所有的观察者*/ public void notifyObservers(); /*自身的操作*/ public void operation(); }
public abstract class AbstractSubject implements Subject { private Vector<Observer> vector = new Vector<Observer>(); @Override public void add(Observer observer) { vector.add(observer); } @Override public void del(Observer observer) { vector.remove(observer); } @Override public void notifyObservers() { Enumeration<Observer> enumo = vector.elements(); while(enumo.hasMoreElements()){ enumo.nextElement().update(); } } }
public class MySubject extends AbstractSubject { @Override public void operation() { System.out.println("update self!"); notifyObservers(); } }
public class ObserverTest { public static void main(String[] args) { Subject sub = new MySubject(); sub.add(new Observer1()); sub.add(new Observer2()); sub.operation(); } }
输出:
update self!
observer1 has received!
observer2 has received!
这些东西,其实不难,只是有些抽象,不太容易整体理解,建议读者:根据关系图,新建项目,自己写代码(或者参考我的代码),按照总体思路走一遍,这样才能体会它的思想,理解起来容易!
发表评论
-
经典软件设计模型 - 插件模型
2016-04-16 11:27 434介绍 什么是插件方法 ... -
经典软件设计模型 - 事件驱动模型
2016-04-16 11:23 516模型说明 在UI编程中,常常要对鼠标点击进行相应,首先如何 ... -
解释器模式
2014-06-22 13:55 370public interface Expression { ... -
中介者模式
2014-06-22 13:55 388public interface Mediator { p ... -
访问者模式
2014-06-22 13:55 244public interface Visitor { pu ... -
状态模式
2014-06-22 13:55 321public class State { priva ... -
备忘录模式
2014-06-22 13:56 348public class Original { priva ... -
命令模式
2014-06-23 10:11 343public interface Command { pu ... -
责任链模式
2014-06-23 10:11 418public interface Handler { pu ... -
迭代子模式
2014-06-23 10:11 403public interface Collection { ... -
模板方法模式
2014-06-23 10:11 327public abstract class AbstractC ... -
策略模式
2014-06-24 09:50 327public interface IStrategy { ... -
享元模式
2014-06-24 09:50 389在JAVA语言中,String类型就是使用了享元模式。St ... -
组合模式
2014-06-24 09:50 306public class TreeNode { priva ... -
桥接模式
2014-06-25 09:44 441public interface Sourceable { ... -
外观模式
2014-06-25 09:44 356public class CPU { public vo ... -
代理模式
2014-06-25 09:44 399public interface Sourceable { ... -
装饰模式
2014-06-21 11:11 294Source类是被装饰类,Decorator类是一个装饰类,可 ... -
适配器模式
2014-06-21 11:11 397public class Source { public ... -
原型模式
2014-06-21 11:11 317public abstract class AbstractM ...
相关推荐
Qt设计模式之观察者模式
采用Java语言编写的一个观察者模式实例。观察者模式(有时又被称为模型-视图(View)模式、源-收听者(Listener)模式或从属者模式)是软件设计模式的一种。在此种模式中,一个目标物件管理所有相依于它的观察者物件,...
java观察者模式观察者模式java观察者模式观察者模式java观察者模式观察者模式
观察者模式及实例,适合初学者阅读 。。。。。。。。。。。。。。。
观察者模式(有时又被称为发布(publish )-订阅(Subscribe)模式、模型-视图(View)模式、源-收听者(Listener)模式或从属者模式)是软件设计模式的一种。在此种模式中,一个目标物件管理所有相依于它的观察者物件...
Java 观察者模式的浅析 简单地说,观察者模式定义了一个一对多的依赖关系,让一个或多个观察者对象监察一个主题对象。这样一个主题对象在状态上的变化能够通知所有的依赖于此对象的那些观察者对象,使这些观察者...
观察者模式
java 设计模式 观察者模式 简单实例 包括测试test类
观察者模式:对象之间多对一依赖的一种设计方案,被依赖的对象为Subject,依赖的对象为Observer,Subject通知Observer变化,这个例子是java内置观察者模式
设计模式之观察者模式Java版本实现和UML类设计图
设计模式-观察者模式(讲解及其实现代码)
设计模式--观察者模式java例子
运用观察者模式及MVC模式的整合,是javaWeb的简单的实现了选民投票
观察者模式Demo,设计模式,观察者模式
观察者模式使用
iOS 设计模式 观察者模式
我们开始发送消息第三步,在组件三中接收消息 第一步,我们先在main.js中注册一下bus 第二步,我们开始发送消息 第三步,在组件三中接收消息 vue的机制 观察者模式存在的意义 观察者模式 首先,提到观察者...
观察者模式小型框架