繁体   English   中英

Java:如何使用观察者设计模式更新类的所有实例

[英]Java : how to use the observer design pattern to update all instances of a class

因此,我有一个具有数据成员的电影课:id,名称,类型,类型和价格。

我是否可以使用观察者设计模式来更新所有这些电影的价格。 因此,我想选择一个选项,将所有电影的促销都添加为客户的半价。 我能够正常执行此操作,但必须尝试为此项目使用一些设计模式。

更新:

对不起,如果我不清楚。 我想知道是否可以使用观察者设计模式来更新我的电影课的所有电影实例的价格。 因此,当工作人员登录系统时,他可以选择添加电影促销。 因此,当他选择“所有电影半价”时,它将以新价格更新电影类的所有实例。

我不确定观察者是否可以做到这一点,但我必须在该项目中使用一些设计模式,并认为我可以在这里使用观察者

如果电影推广是一个事件,并且电影实例是对该事件感兴趣的Observers ,那么我认为Observer pattern可以应用于问题中发布的情况。 接口可以设计如下:

public interface PromotionObserver{
    void notify();
}

该接口可以由Film类实现。 如果存在Film的各种子类,则notify()可以由所有子类实现,并且在实现中,可以对子类进行价格相关的更改。 如果更改是通用的,例如价格只是原始价格的一半,那么父类就可以实现notify()和类似price = price/2;代码price = price/2; 就足够了。

负责处理Film promotion event可以具有List<PromotionObserver> promotionObservers; 以及诸如registerPromotionObserver(PromotionObserver promotionObserver); 当工作人员登录并决定制作全部或几部电影作为促销影片时(可以通过单击UI侧复选框的按钮),然后循环播放,可以对promotionObservers进行迭代,并且在PromotionObserver的每个已注册对象上可以分别通知notify()被调用

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM