gpt4 book ai didi

ruby-on-rails - 一般与模型特定的观察者和邮寄者?

转载 作者:太空宇宙 更新时间:2023-11-03 16:33:34 25 4
gpt4 key购买 nike

创建邮件程序和/或观察程序时,您是根据模型还是根据任务来组织它们?

基于模型

PictureMailer
PictureObserver
EventMailer
EventObserver
UserMailer
UserObserver

或基于任务

AdminMailer (Mails to be sent to admins)
AdminObserver
NotificationMailer
NotificationObserver

最佳答案

我根据他们的任务组织他们。我更喜欢拥有更多、更小、更细粒度的邮件程序,而不是一些更大、更粗粒度的邮件程序。例如,我可能没有 AdminMailer,但有几个不同的邮件程序用于管理中发生的不同事情。通知也是如此——您可能有不止一个发送通知的用例,所以我会为每个用例准备一个邮件程序。通常,可以将其视为一个邮件一个功能。

至于观察者,这取决于他们的任务。如果我正在监控用户的创建和修改以进行分析,我可能只有一个 UserObserver。当我需要第二个用户观察者时,我会将其重命名为 UserAnalyticsObserver。查看当前项目,我有四个观察者,其中只有一个以模型命名 - 大多数以特征命名。

我在这里的推理是遵循单一职责原则,这实质上意味着一个类应该有一个改变的理由。如果我在模型之后命名邮件程序/观察程序,我最终会得到支持多种功能的类,因此,有多种更改原因。

关于ruby-on-rails - 一般与模型特定的观察者和邮寄者?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11517042/

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