「java观察者模式例子」java观察者模式的实现

博主:adminadmin 2022-11-24 12:56:07 76

本篇文章给大家谈谈java观察者模式例子,以及java观察者模式的实现对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

如何使用 Java8 实现观察者模式

你说的场景是符合这个模式的:观察者模式的应用场景:1、对一个对象状态的更新,需要其他对象同步更新,而且其他对象的数量动态可变。2、对象仅需要将自己的更新通知给其他对象而不需要知道其他对象的细节。观察者模式的优点:1、Subject和Observer之间是松偶合的,分别可以各自独立改变。2、Subject在发送广播通知的时候,无须指定具体的Observer,Observer可以自己决定是否要订阅Subject的通知。3、遵守大部分GRASP原则和常用设计原则,高内聚、低偶合。

java中常用的设计模式有哪些?

您好:

java中的设计模式有23种,具体如下:

创建型

抽象工厂模式、工厂方法、建造者模式、原型模式、单态模式

结构型

适配器模式、桥接模式、组合模式、外观模式、装饰者模式、享元模式、代理模式、

行为型

责任链模式、命令模式、解释器模式、迭代模式、中介者模式、备忘录模式、观察者模式、状态模式、策略模式、模板方法模式、访问者模式

常见的有七种,具体如下:单例模式、工厂模式、建造(Builder)模式、观察者模式、适配器(Adapter)模式、代理模式、装饰模式

举个例子:

通过调用getInstance()方法来创建实例。

其他不一一举例,仅供参考!希望对你有帮助

观察者模式(Observer)的推式与拉式

当我们想订一份报纸,我们先去邮局找到报纸的编号后填写订阅单并缴费。当报社有新报纸发出时,邮局会将我们订阅的报纸发给我们。

为了简单我们去掉邮局环节简化成:报社有新报纸后马上通知用户,这就是观察者。

定义对象间的一对多关系,当一个对象的状态发生变化时,所依赖于它的对象都得到通知并主动更新。 在观察者模式中,多个订阅者成为观察者(Observer),被观察的对象成为目标(Subject)。观察者的UML模型如下:

先定义Subject并写一个ConcreteSubject继承Subject:

再定义一个接口Observer,并写一个ConcreteObserver实现Observer接口:

最后看看主函数方法:

打印出来的结果:

在实现观察者模式的时候,一定要注意触发通知的时机。一般情况下是在完成了状态改变之后触发,因为通知会传递数据,比如在 setSubjectState 时先通知观测者就会发生 错误 。

在观察者模式的实现上,有推模式和拉模式两种方式:

当前上面的实现使用的就是拉模型。通过 (ConcreteSubject)subject 得到具体对象,获得信息。

当然Java本身就有观察者模式的部分实现,分别是 java.util.Observable java.util.Observable 。

下面看一个使用Java自带观察者模式的例子:

新的目标直接继承Java中定义的Observerable:

新的观察者也直接实现Observer接口:

主函数和前面的相似:

打印出结果:

使用Java自带的观察者模式需要注意以下几个问题:

java中几种常见的设计模式

一共23种设计模式!

按照目的来分,设计模式可以分为创建型模式、结构型模式和行为型模式。

创建型模式用来处理对象的创建过程;结构型模式用来处理类或者对象的组合;行为型模式用来对类或对象怎样交互和怎样分配职责进行描述。

创建型模式用来处理对象的创建过程,主要包含以下5种设计模式:

 工厂方法模式(Factory Method Pattern)

 抽象工厂模式(Abstract Factory Pattern)

 建造者模式(Builder Pattern)

 原型模式(Prototype Pattern)

 单例模式(Singleton Pattern)

结构型模式用来处理类或者对象的组合,主要包含以下7种设计模式:

 适配器模式(Adapter Pattern)

 桥接模式(Bridge Pattern)

 组合模式(Composite Pattern)

 装饰者模式(Decorator Pattern)

 外观模式(Facade Pattern)

 享元模式(Flyweight Pattern)

 代理模式(Proxy Pattern)

行为型模式用来对类或对象怎样交互和怎样分配职责进行描述,主要包含以下11种设计模式:

 责任链模式(Chain of Responsibility Pattern)

 命令模式(Command Pattern)

 解释器模式(Interpreter Pattern)

 迭代器模式(Iterator Pattern)

 中介者模式(Mediator Pattern)

 备忘录模式(Memento Pattern)

 观察者模式(Observer Pattern)

 状态模式(State Pattern)

 策略模式(Strategy Pattern)

 模板方法模式(Template Method Pattern)

 访问者模式(Visitor Pattern)

推荐你一本好书:《软件秘笈:设计模式那点事》,里面讲解的23中设计模式例子很生动,容易理解,还有JDK中设计模式应用情况,看了收获挺大的!百度里面搜“设计模式”,第一条中设计模式百度百科中就有首推该图书,浏览量在20几万以上的,不会错的。好东西大家一起分享!

祝你早日学会设计模式!

关于java观察者模式例子和java观察者模式的实现的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-11-24,除非注明,否则均为首码项目网原创文章,转载请注明出处。