zoukankan      html  css  js  c++  java
  • 设计模式学习每天一个——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模式主要解决在对象间的状态映射或者镜像的问题。

  • 相关阅读:
    Flask + WSGI + Nginx 环境
    sql字段合并与分组聚合
    杭州优科豪马轮胎有限公司北京经销商
    国家与大洲对应关系json数据
    【C#】编码史记
    【C#】Unicode的流言终结者和编码大揭秘
    【WPF】生成二维码
    【WPF】WriteableBitmap和BitmapImage的相互转换
    TPL之延续任务
    【C#】日期格式转换
  • 原文地址:https://www.cnblogs.com/windy86/p/3976610.html
Copyright © 2011-2022 走看看