编辑
观察者模式
本文访问次数:0

观察者模式属于一种软件开发模式(Software Design Pattern),更准确的说,它属于软件开发模式中的行为性模式(Behavioral Patterns)。有一个对象,叫做目标对象或可观察对象,还有一些其他对象,叫附属对象或者观察者,对目标对象保持观察,当目标对象的某些状态发生变化时,目标对象会逐一通知这些附属对象,通常通过调用附属对象的方法来完成通知。一般来说,目标对象会持有所有附属对象的引用并保存在列表中,这样很容易造成内存泄漏,解决办法通常为保持弱引用(如果支持的话)。观察者模式通常用来实现事件处理系统,并且在MVC模式中是非常重要的一部分。下面用Java语言演示观察者模式

import java.util.Observable;
import java.util.Scanner;

class EventSource extends Observable implements Runnable {
    public void run() {
        while (true) {
            String response = new Scanner(System.in).next();
            setChanged();
            notifyObservers(response);
        }
    }
}
import java.util.Observable;
import java.util.Observer;

public class MyApp {
    public static void main(String[] args) {
        System.out.println("Enter Text: ");
        EventSource eventSource = new EventSource();

        eventSource.addObserver(new Observer() {
            public void update(Observable obj, Object arg) {
                System.out.println("Received response: " + arg);
            }
        });

        new Thread(eventSource).start();
    }
}
/*
interface Observer{
    public void update(Observable obj, Object arg);
}*/
没有任何评论