哪些 'event' 驱动的内容通知服务设计模式 Java?
Which Design Patterns for 'event'-driven notification service for Content in Java?
我正在设计一个内容管理系统。目前我正在处理文件
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
}
上面是类的大致轮廓。
我希望它针对某些操作(文件提交、批准、拒绝等)发出通知,具体取决于它被提交给了哪家报纸。
然后我可以进入相应的方法,例如 'saveDocument',检查一个键是否存在,如果存在,则将它映射到的通知发送到 editor/author。
我认为 Enums 是一个很好的计划,可以添加或删除尽可能多的内容,而且并非所有报纸都想全部使用。然而,我被告知这是一个糟糕的设计,因为 e-nums 很难管理,并且需要通过重新部署等进行大量维护。
想知道有没有更适合这种设计的设计模式
我想的替代方案是每次调用一个方法,然后使用 freemarker 来确定是否应该发送电子邮件。
主要特点:
- 报纸有通知(可能有多种)
- 当某些操作时需要发送通知,有时是编辑 ID,有时是作者 ID
- 每份报纸的事件数量会有所不同。
感谢您的帮助。
听起来像是 Observer Pattern 的明确案例,其中 Newspaper
和 Document
将是 Subjects 而你的 Notifications
将是 观察者.
If 不会避免使用 Enums
,因为它们非常适合区分 通知类型 以及 文档操作 .除了添加新通知或媒体类型的其他代码更改所需的那些之外,我看不出他们将如何需要额外的重新部署。
不过,如果需要在不重启服务器的情况下重新配置通知、文档操作和媒体类型之间的映射,您可以实施某种基于数据库或配置文件的映射。
我正在设计一个内容管理系统。目前我正在处理文件
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
}
上面是类的大致轮廓。
我希望它针对某些操作(文件提交、批准、拒绝等)发出通知,具体取决于它被提交给了哪家报纸。
然后我可以进入相应的方法,例如 'saveDocument',检查一个键是否存在,如果存在,则将它映射到的通知发送到 editor/author。
我认为 Enums 是一个很好的计划,可以添加或删除尽可能多的内容,而且并非所有报纸都想全部使用。然而,我被告知这是一个糟糕的设计,因为 e-nums 很难管理,并且需要通过重新部署等进行大量维护。
想知道有没有更适合这种设计的设计模式
我想的替代方案是每次调用一个方法,然后使用 freemarker 来确定是否应该发送电子邮件。
主要特点:
- 报纸有通知(可能有多种)
- 当某些操作时需要发送通知,有时是编辑 ID,有时是作者 ID
- 每份报纸的事件数量会有所不同。
感谢您的帮助。
听起来像是 Observer Pattern 的明确案例,其中 Newspaper
和 Document
将是 Subjects 而你的 Notifications
将是 观察者.
If 不会避免使用 Enums
,因为它们非常适合区分 通知类型 以及 文档操作 .除了添加新通知或媒体类型的其他代码更改所需的那些之外,我看不出他们将如何需要额外的重新部署。
不过,如果需要在不重启服务器的情况下重新配置通知、文档操作和媒体类型之间的映射,您可以实施某种基于数据库或配置文件的映射。