文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Java设计模式探究之观察者模式详解

2024-04-02 19:55

关注

1.观察者模式是什么

顾名思义,有两个对象,观察者和被观察者。当被观察者数据发生变化时,提醒观察者更新数据或状态。

2.如何实现

1)定义两个类,观察者和被观察者。

2)被观察者要维护一个集合,存放观察者对象。并且提供增删方法。

3)被观察者数据发生变化时,要调用观察者的方法,以便通知观察者更新数据或状态。

4)基于面向抽象原则,可以将观察者和被观察者中的方法提取接口中。

3.代码实现

1)观察者接口


public interface Observer {
    
    public void uPdate();
    public void remove();
}

2)被观察者接口


public interface Observed {
    public void addObserver(Observer observer);
    public void deleteObserver(Observer observer);
    public void notifyObservers();
}

3)观察者实现


public class ObserverImpl implements Observer {
    public ObserverImpl(){
    }
    @Override
    public void uPdate() {
        System.out.println("update....");
    }
}

4)被观察者实现


public class ObserverImpl implements Observer {
    public ObserverImpl(){
    }
    private Observed observed;
    public ObserverImpl(Observed observed){
        this.observed = observed;
        observed.addObserver(this);
    }
    @Override
    public void uPdate() {
        System.out.println("观察者更新数据变化....");
    }
    @Override
    public void remove() {
        if(observed!=null){
            observed.deleteObserver(this);
        }
    }
}

5)测试类

public class TestObserver {
    public static void main(String args []){
        ObservedImpl subject = new ObservedImpl();
        ObserverImpl observer1 =  new ObserverImpl(subject);
        subject.notifyObservers();
    }
}

4.延伸拓展

在Android的代码中,有很多地方用到了观察者模式。

Android的广播机制,就是采用的观察者模式。

我们创建一个广播接收者,来接收系统广播。在Android源码中,其实就维护了一个接收者的集合,用于存放所有的广播接收者。

到此这篇关于Java设计模式探究之观察者模式详解的文章就介绍到这了,更多相关Java观察者模式内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯