博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
观察者模式(observer)
阅读量:4598 次
发布时间:2019-06-09

本文共 1149 字,大约阅读时间需要 3 分钟。

Observer Pattern:

Define a one-to-many dependency between objects so that when one object changes state, all its dependents are notified and updated automatically.

Frequency of use: high

Participants:

1.Subject
2.Observer
3.ConcreteSubject
4.ConcreteObserver

 

(1)Subject

import java.util.*;public abstract class Subject{	protected ArrayList observers = new ArrayList();	public abstract void attach(Observer observer);	public abstract void detach(Observer observer);	public abstract void notify();}

(2)Observer

public interface Observer{	public void update();}

(3)ConcreteSubject

public class ConcreteSubject extends Subject{	public void attach(Observer observer)	{		observers.add(observer);	}		public void detach(Observer observer)	{		observers.remove(observer);	}		public void notify()	{		for(Object obs:observers)		{			((Observer)obs).update();		}	}	}

 

(4)ConcreteObserver

public class ConcreteObserver implements Observer{	public void update()	{		//具体更新代码	}}

(5)Test

Subject subject = new ConcreteSubject();Observer observer = new ConcreteObserver();subject.attach(observer);subject.notify();

  

  

转载于:https://www.cnblogs.com/sysout/p/5156293.html

你可能感兴趣的文章
mac os x mysql 出现./mysql: unknown variable 'sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABL 问题...
查看>>
桐桐的贸易--WA
查看>>
历届试题 高僧斗法
查看>>
linux命令系列 stat & touch
查看>>
[Tools] Webstorm Github的配置与使用
查看>>
鬼谷子绝学
查看>>
Mongodb 笔记04 特殊索引和集合、聚合、应用程序设计
查看>>
使用Post/Redirect/Get实现Asp.net防止表单重复提交
查看>>
用Html5与Asp.net MVC上传多个文件
查看>>
lambda函数,常用函数,内置函数(string,zip()map()filter())的用法
查看>>
Xcode中匹配的配置包的存放目录
查看>>
JavaScript将具有父子关系的原始数据格式化成树形结构数据(id,pid)
查看>>
CSS3.0——背景属性
查看>>
超棒的CSS3动画页面过渡效果
查看>>
【转】性能测试、负载测试、压力测试的区别
查看>>
hdu5863_dp+矩阵快速幂
查看>>
运算符
查看>>
【转载】C语言中的undefined behavior/unspecified behavior - 序
查看>>
MySQL服务使用
查看>>
C语言练手自己编写学生成绩管理系统
查看>>