`

设计模式快速参考-观察者模式

阅读更多
//主题,这里是快餐店
class SnackShop{
   private List<Customer> customers = new Arraylist();
   public void add(Customer customer){
      customers.add(customer);
   }
   //通知,对订阅主题的客户发布通知,比如“外卖已好”
   public void notify(){
      for(Customer c: customers){
         c.getFood();
      }
   }
}

//订阅者,这里是客户
class Customer{
   Customer (SnackShop shop){
      //将客户加入到快餐店列表
      shop.add(this);
   }
   //回调函数,当接到通知后,客户的动作
   public void getFood(){
      //取得外卖
   }
}
 


Client:

 

SnackShop snackShop = new SnackShop();
Customer zhangSan = new Customer(snackShop);
snackShop.notify();
 


分享到:
评论
2 楼 gurudk 2008-12-16  
见仁见智,也可以单独的subscribe方法。
1 楼 jxva 2008-12-16  

Customer (SnackShop shop){ 
       //将客户加入到快餐店列表 
       shop.add(this); 

这段语句不适合.

相关推荐

    设计模式-观察者模式-作业-observer.zip

    用c++和lua实现的观察者模式小栗子,其中c++版本参考了别人的实现

    观察者模式

    观察者设计模式观察者模式(有时又被称为发布-订阅模式、模型-视图模式、源-收听者模式或从属者模式)是软件设计模式的一种。在此种模式中,一个目标物件管理所有相依于它的观察者物件,并且在它本身的状态改变时...

    ObserverDemo观察者设计模式源码

    一个观察者设计模式小案例的源码,仅供参考

    观察者设计模式demo

    用观察者设计模式写的一个小demo,可以参考下(android中listview的BaseAdapter使用的就是观察者模式)

    设计模式--C++

    5.7 OBSERVER(观察者)—对象行为型模式 194 5.8 STATE(状态)—对象行为型模式 201 5.9 STRATEGY(策略)—对象行为型模式 208 5.10 TEMPLATE METHOD(模板方法)—类行为型模式 214 5.11 VISITOR(访问者)—...

    用观察者模式和非观察者模式设计一个交通信号灯调度系统

    用观察者模式设计一个交通信号灯调度系统,有需要的朋友可以参考下。这是本人写一篇有关于Java中设计模式,多线程调度的一个Demo吧,本人水平有限,望各位博友批评指正。此Demo实现了现实交通信号灯调度车辆通行的功能,...

    【资源免费下载】Java代码积累丨大话设计模式(Java实现版本)、线程协作

    设计模式参考《大话设计模式》 工厂简单模式 创造型模式 工厂方法模式 抽象工厂模式 原型模式 建造者模式 单例模式 结构型模式 队列模式 桥接模式 组合模式 装饰模式 外观模式 享元模式 代理模式 行为模式(类行为...

    快速学习C++设计模式:观察者模式实例代码

    观察者模式是目前应用最广、影响范围最大的模式之一,因为 Observer 的一个实例 MVC结构(Model/View/Control )在系统开发架构设计中有着很重要的地位和意义,实现了业务逻辑和表示层的解耦。下面示例代码以篮球...

    JavaScript设计模式之观察者模式(发布者-订阅者模式)

    主要介绍了JavaScript设计模式之观察者模式(发布者-订阅者模式),本文详细的讲解了JavaScript中的观察者模式,需要的朋友可以参考下

    Android观察者模式设计思想

    Android观察者模式设计思想 详细信息参考http://blog.csdn.net/huahuadashen/article/details/20626717

    《java设计模式》课后习题模拟试题解答——刘伟.zip

    《java设计模式》课后习题及模拟试题答案

    设计模式--可复用面向对象软件的基础

    5.7 OBSERVER(观察者)——对象行为型模式 5.8 STATE(状态)——对象行为型模式 5.9 STRATEGY(策略)——对象行为型模式 5.10 TEMPLATE METHOD(模板方法)——类行为型模式 5.11 VISITOR(访问者)——对象行为...

    详解Observer Pattern(观察者模式)在Java中的使用原理

    我们说学习Java应该从Swing开始,那么学习Swing最重要的思想就是对于观察者模式的理解(Observer Pattern)。因为,该设计模式在Java Swing框架中贯穿了始终。对于C#的委托、代理概念所使用的Callback(回调模式--...

    设计模式:可复用面向对象软件的基础--详细书签版

    5.7 observer(观察者)—对象行为型 模式 194 5.8 state(状态)—对象行为型模式 201 5.9 strategy(策略)—对象行为型 模式 208 5.10 template method(模板方法) —类行为型模式 214 5.11 visitor...

    研磨设计模式(完整带书签).part2.pdf

    第12章 观察者模式(Observer) 第13章 命令模式(Command) 第14章 迭代器模式(Iterator) 第15章 组合模式(Composite) 第16章 模板方法模式(Template Method) 第17章 策略模式(Strategy) 第18章 状态模式...

    JavaScript设计模式之观察者模式与发布订阅模式详解

    本文实例讲述了JavaScript设计模式之观察者模式与发布订阅模式。分享给大家供大家参考,具体如下: 学习了一段时间设计模式,当学到观察者模式和发布订阅模式的时候遇到了很大的问题,这两个模式有点类似,有点傻傻...

    中南大学-设计模式-实验二

    中南大学设计模式实验2,关于策略模式,命令模式,观察者模式等等,有每个实验具体事例环境的类图和实例代码。友情提示,本资源仅作参考。

    设计模式可复用面向对象软件的基础.zip

    5.7 OBSERVER(观察者)—对象行为型 模式 194 5.8 STATE(状态)—对象行为型模式 201 5.9 STRATEGY(策略)—对象行为型 模式 208 5.10 TEMPLATE METHOD(模板方法) —类行为型模式 214 5.11 VISITOR(访问者)—...

    C++设计模式(Design Pattern)范例源代码

    23种设计模式(Design Pattern)的C++实现范例,包括下面列出的各种模式,代码包含较详细注释。...观察者模式(Observer) 状态模式(State) 策略模式(Strategy) 模板方法模式(Template Method) 访问者模式(Visitor)

    研磨设计模式-part2

    第12章 观察者模式(Observer) 第13章 命令模式(Command) 第14章 迭代器模式(Iterator) 第15章 组合模式(Composite) 第16章 模板方法模式(Template Method) 第17章 策略模式(Strategy) 第18章 状态模式...

Global site tag (gtag.js) - Google Analytics