关闭

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

标签: 设计模式
141人阅读 评论(0) 收藏 举报
分类:

这里写图片描述

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");
    }
}
0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

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

观察者模式用于建立一种对象与对象之间的依赖关系,一个对象发生改变时将自动通知其他对象,其他对象将相应作出反应。在观察者模式中,发生改变的对象称为观察目标,而被通知的对象称为观察者,一个观察目标可以对应...
  • yanbober
  • yanbober
  • 2015-05-04 20:46
  • 4823

设计模式(五)观察者模式

观察者模式(又被称为发布-订阅(Publish/Subscribe)模式,它定义了一种一对多的依赖关系,让多个观察者对象同时监听莫一个主题对象。这个主题对象在状态变化时,会通知所有的观察者对象,使他们...
  • itachi85
  • itachi85
  • 2016-03-02 17:41
  • 37434

Android开发中无处不在的设计模式——观察者模式

ndroid开发中无处不在的设计模式——单例模式 Android开发中无处不在的设计模式——Builder模式 前面介绍了单例模式和Builder模式,有兴趣的见上面两个链接,这篇文章着重介绍一下观察...
  • sbsujjbcy
  • sbsujjbcy
  • 2015-10-20 21:55
  • 4714

C#面向对象设计模式纵横谈(19):(行为型模式) Observer 观察者模式 (Level 300)

  • 2008-09-16 14:43
  • 9.32MB
  • 下载

C#面向对象设计模式纵横谈\19 行为型模式Observer观察者模式.zip

  • 2009-12-20 13:05
  • 10.27MB
  • 下载

Android 设计模式:(一)观察者模式 —— 封装行为的大局观

  • 2012-09-25 17:30
  • 9KB
  • 下载

23钟设计模式之观察者模式

  • 2013-08-13 10:44
  • 18KB
  • 下载

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

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

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

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

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

设计模式-行为型-观察者模式(Observer)
  • jx_870915876
  • jx_870915876
  • 2016-08-08 17:40
  • 18988
    个人资料
    • 访问:166571次
    • 积分:2657
    • 等级:
    • 排名:第15823名
    • 原创:80篇
    • 转载:173篇
    • 译文:0篇
    • 评论:13条
    文章分类
    最新评论