23中设计模式-行为型1-观察者模式

原创 2016年05月30日 22:39:58

这里写图片描述

Theme.java

public interface Theme {
    abstract void addObserver(Observer observer);
    abstract void removeObserver(Observer observer);
    abstract void service(String notice);
}

ConcreteTheme.java

public class ConcreteTheme implements Theme {
    private List<Observer> observer=Collections.synchronizedList(new ArrayList<Observer>());
    @Override
    public void addObserver(Observer observer) {
        this.observer.add(observer);
    }

    @Override
    public void removeObserver(Observer observer) {
        this.observer.remove(observer);
    }


    private void notice(String notice) {
        if(this.observer.size()!=0){
            for(Observer o : this.observer){
                o.update_before(notice);
                System.out.println(notice);
                o.update_back(notice);
            }
        }else{
            System.out.println(notice);
        }

    }

    @Override
    public void service(String notice) {
        notice(notice);

    }

}

Observer.java

public interface Observer {
    abstract void update_before(String notice);
    abstract void update_back(String notice);
}

ConcreteObserver.java

public class ConcreteObserver implements Observer {

    @Override
    public void update_before(String notice) {
        // TODO Auto-generated method stub

    }

    @Override
    public void update_back(String notice) {
        // TODO Auto-generated method stub

    }



}

DemoTest.java

public class DemoTest {
    @Test
    public void test1(){
        Theme theme=new ConcreteTheme();
        theme.addObserver(new Observer(){
            @Override
            public void update_before(String notice) {
                System.out.println("监听前1");
            }
            @Override
            public void update_back(String notice) {
                System.out.println("监听后1");
            }
        });
        theme.service("Hello");
    }
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

JAVA设计模式(19):行为型-观察者模式(Observer)

观察者模式中,一个被观察者管理所有相依于它的观察者物件,并且在本身的状态改变时主动发出通知。这通常通过 呼叫各观察者所提供的方法来实现。此种模式通常被用来实现事件处理系统。 角色 抽象被观察者角...

设计模式-行为型-观察者模式(Observer)

设计模式-行为型-观察者模式(Observer)

行为型:设计模式之观察者模式(十九)

观察者模式是设计模式中的“超级模式”,其应用随处可见,在之后几篇文章里,我将向大家详细介绍观察者模式。         “红灯停,绿灯行”,在日常生活中,交通信号灯装点着我们的城市,指挥着...

设计模式 ( 十六 ) 观察者模式Observer(对象行为型)

设计模式 ( 十五 ) 观察者模式Observer(对象行为型) 1.概述 一些面向对象的编程方式,提供了一种构建对象间复杂网络互连的能力。当对象们连接在一起时,它们就可以相互提供服务和信...

23种设计模式(16)_行为型_观察者模式(Observer Pattern)

定义:定义对象间一种一对多的依赖关系,使得当每一个对象改变状态,则所有依赖于它的对象都会得到通知并自动更新。观察者与被观察者之间是属于轻度的关联关系,并且是抽象耦合的,这样,对于两者来说都比较容易进行...

设计模式(8)观察者模式-行为型

定义定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。角色抽象主题(ISubject)定义主题中的要实现的方法,包括保存所有的观察者,观察者注册,取消注...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)