Java设计模式之四:观察者模式

本文阅读 2 分钟
首页 代码,Java 正文

引言

本文主要介绍观察者模式,它是一种行为类的设计模式。适合一对多的适用场景。

  • 观察者模式介绍
  • 代码示例
  • 总结

一、观察者模式介绍

观察者模式是一种对象行为模式。它定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新

所谓观察这模式,按照我自己的理解就是打小报告的模式。估计大家都记得我们上小学的时候班里面总有些人喜欢喝老师打小报告班级里有点什么小动静,老师都会通过打小报告的人获取到消息。

二、代码示例

观察者模式的主要设计四个角色,如下所示:

  1. 抽象被观察者;
  2. 被观察者实现;
  3. 抽象观察者;
  4. 观察者实现;

UML类图如下所示: img

抽象被观察者:

interface ISubject { 

    List<Observer> addObserver(Observer observer);

    void notifyObserver();
}

被观察者实现:

public class SubjectImpl implements ISubject { 

    List<Observer> observerList = Lists.newArrayList();
    
    @Override
    public List<Observer> addObserver(Observer observer) { 
        return observerList.add(observer);
    }
    @Override
    public void notifyObserver() { 
        for(Observer observer : observerList ) { 
            observer.updateSomething(); 
        }
    }
}

抽象观察者:

interface IObserver{ 

    void updateSomething();

}

观察者实现:

public class ObserverImpl implements IObserver{ 
    
    @Override
    public void updateSomething() { 
    System.out.println("被观察者做了啥,我得做啥");
}

}

使用场景代码:

public class Main{ 
    public static void main(String[] args) { 
    IObserver observer = new ObserverImpl();
    ISubject subject = new SubjectImpl();
    subject.addObserver(observer);
    subject.notifyObserver();

}
}

三、总结

观察者模式使我们在日常项目实践中比较常用的设计模式,它体现了代码模块的高内聚低耦合的特性,我们可以方便的使用它进行代码扩展。

本文为互联网自动采集或经作者授权后发布,本文观点不代表立场,若侵权下架请联系我们删帖处理!文章出自:https://blog.csdn.net/Diamond_Tao/article/details/102812183
-- 展开阅读全文 --
大白话讲解JDK源码系列:从头到尾再讲一遍ThreadLocal
« 上一篇 01-30
KillDefender 的 Beacon 对象文件 PoC 实现
下一篇 » 02-09

发表评论

成为第一个评论的人

热门文章

标签TAG

最近回复