gpt4 book ai didi

java - Java 中 'event' 驱动的内容通知服务的设计模式是什么?

转载 作者:行者123 更新时间:2023-12-01 11:58:05 25 4
gpt4 key购买 nike

我正在设计一个内容管理系统。目前我正在处理文档

public Enum DocAction(){
DOCUMENTSUBMITTED,
DOCUMENTAPPROVED,
DOCUMENTREJECTED
}

public Enum NotificationType(){
EMAIL,
TEXT,
POPUP
}

public class Newspaper(){
private long id;
private map<DocAction,long> notifications;
private long EditorId
}

Public class Document(){
private long id;
private long newspaperId;
private long authorId
private String article
}

Public class Notification(){
private long id
private map<NotificationType,long> notifications
}

类(class)的大致轮廓如上。

我希望针对某些操作(提交、批准、拒绝文件等)发送通知,具体取决于提交给哪家报纸。

然后我可以进入相应的方法,例如“saveDocument”,检查 key 是否存在,如果存在,则将其映射到的通知发送给编辑/作者。

我认为枚举是一个很好的计划,因为可以添加或删除尽可能多的内容,而且并非所有报纸都想使用所有内容。然而我被告知这是一个糟糕的设计,因为电子数字很难管理,并且需要通过重新部署等进行大量维护。

我想知道是否有更适合这种设计的设计模式。

我认为的替代方案只是每次调用一个方法,并使用 freemarker 来确定是否应该发送电子邮件。

主要特点:

  • 报纸有通知(可能有多种类型)
  • 某些操作需要向编辑 ID 或作者 ID 发送通知
  • 每份报纸的 Activity 数量会有所不同。

感谢您的帮助。

最佳答案

听起来像是 Observer Pattern 的一个明确的案例。 ,其中报纸文档将是主题,而您的通知将是观察者

如果不能避免使用枚举,因为它们非常适合区分通知类型以及文档操作。除了添加新通知或媒体类型的其他代码更改所需的部署之外,我看不出他们如何需要额外的重新部署。

不过,如果需要在不重新启动服务器的情况下重新配置通知、文档操作和媒体类型之间的映射,您可以实现某种基于数据库或配置文件的映射。

关于java - Java 中 'event' 驱动的内容通知服务的设计模式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28274766/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com