zoukankan      html  css  js  c++  java
  • 观察者模式(observer)

    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(); 
    

      

      

  • 相关阅读:
    Spring boot mybatis : Error creating bean with name 'com.github.pagehelper.autoconfigure.MapperAutoConfiguration': Invocation of init method failed;
    方法调用
    初识MQ
    Shell 变量
    Eclipse 导入本地 Git 项目
    IDEA 常用快捷键
    Xshell 配色方案
    冒泡排序
    递归
    安卓服务Service详解
  • 原文地址:https://www.cnblogs.com/sysout/p/5156293.html
Copyright © 2011-2022 走看看