设计模式学习每天一个——Observer模式

Observer模式,.net和java中的“委托事件模型”我感觉就属于一种教复杂的observer模式。Observer模式包含被观察对象和观察者,当被观察对象发生任何变化时能及时通知观察者。我们需要被观察者和观察者直接建立关系。对于这种关系的建立我们可以有两种方法,一种就是被观察者知道观察者,他每次有什么事情都会去通知观察者;另一种就是被观察者不知道观察者,观察者通过某些工具悄悄的窥探被观察者的隐私。

package Test;

import java.util.*;

public class LazyStudent implements Observer
{
	
	String name;
	
	public LazyStudent(String Name)
	{
		name = Name;
	}

	@Override
	public void update(Observable o, Object arg) {
		
		System.out.println(name + ",老师来了!");
	}

}

package Test;

import java.util.Observable;

public class Monitor extends Observable
{
      public void Observe()
      {
    	  this.setChanged();
      }
}

package Test;
import java.util.*;

public class MainTest 
{
    public static void main(String[] args)
    {
        Monitor monitor = new  Monitor();
        LazyStudent Lily = new  LazyStudent("Lily");
        LazyStudent Bill = new  LazyStudent("Bill");
        monitor.addObserver(Lily);
        monitor.addObserver(Bill);
        monitor.Observe();
        monitor.notifyObservers();
    }
}

  

Java中对Observer模式的简单实现:类java.util.Observerable和接口java.util.Observer。

Obverser模式主要解决在对象间的状态映射或者镜像的问题。

原文地址:https://www.cnblogs.com/windy86/p/3976610.html