JAVA设计模式之观察者模式

public interface Observers {
    void update(String msg);
}
public interface Observerable {
    public void registerObserver(Observers o);
    public void removeObserver(Observers o);
    public void notifyObserver(String msg);
}

public class MyObserverable implements Observerable {

    private List<Observers> list;

    MyObserverable() {
        list = new ArrayList<>();
    }

    @Override
    public void registerObserver(Observers o) {
        list.add(o);
    }

    @Override
    public void removeObserver(Observers o) {
        list.remove(o);
    }

    @Override
    public void notifyObserver(String msg) {
        for (Observers observer : list) {
            observer.update(msg);
        }
    }
}

public class AMyObserverable implements Observers {
    @Override
    public void update(String msg) {
        System.out.println("=====msg==" + msg);
    }
}
public class Test {
    public static void main(String[] args) {
        MyObserverable myObserverable=new MyObserverable();
        Observers test1=new AMyObserverable();
        Observers test2=new AMyObserverable();
        Observers test3=new AMyObserverable();
        Observers test4=new AMyObserverable();
        myObserverable.registerObserver(test1);
        myObserverable.registerObserver(test2);
        myObserverable.registerObserver(test3);
        myObserverable.registerObserver(test4);
        myObserverable.notifyObserver("main函数");
    }
}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。