好记性不如铅笔头

java, 编程, 设计模式

设计模式学习笔记:观察者模式

最近在看《设计模式之禅》这本书,收获良多,作者不愧是工作多年的大牛,将各种设计模式讲解的非常透彻。这里备份下书中的【 观察者模式 】代码:

github:

https://github.com/cstriker1407/design_pattern 】

class MyObservable extends Observable
{
	public String str = "this is MyObservable";
	public void changed()
	{
		System.out.println("I am changing");
		setChanged();
		notifyObservers("Hello World");
	}
}

class MyObserver implements Observer
{
	public MyObserver(String name)
	{
		super();
		this.name = name;
	}

	private String name;
	
	@Override
	public void update(Observable o, Object arg)
	{
		System.out.print("Name:" + name +" ");
		System.out.print("observerable:" + ((MyObservable)o).str +" ");
		System.out.println("Object:" + arg.toString() );
	}
}

 测试代码:

public class ObserveTest
{
	public static void test()
	{
		MyObservable myObservable = new MyObservable();
		MyObserver myObserverA = new MyObserver("A");
		MyObserver myObserverB = new MyObserver("B");
		MyObserver myObserverC = new MyObserver("C");
		
		myObservable.addObserver(myObserverA);
		myObservable.addObserver(myObserverB);
		myObservable.addObserver(myObserverC);
		
		myObservable.changed();
	}
}

发表评论

19 + 1 =

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据