2013-04-23 49 views
25

简短版本:何时应该将某些内容放入应用程序/服务而不是放入lib /中。Rails服务对象vs lib类

最近我一直在关注服务对象的路线,但是我意识到有时候我不能真正决定天气我应该将某些东西提取到服务对象中(我在app/services中)或者到一个类中在我的lib文件夹中。

我通常会寻找的一件事是,如果类需要访问params或其他控制器特定的东西(即作为初始化器中的参数),那么我倾向于将其放入服务中。

这里的约定是什么?证明(链接)会很好:)

回答

52

这是我倾向于认为有关代码进去lib/

  • 它不连接到我的应用程序的域模型。
  • 它可以在其他项目上重复使用。
  • 它可能会成为它自己的宝石。因此,把它放在lib/是朝这个方向迈出的第一步。

服务:

  • 他们往往知道的领域模型的内部工作像样的数目。
  • 在我的应用程序中执行特定于业务域的工作。
  • 趋于耦合到特定的模型。
+0

因为你在那里放了很好的例子,我会接受这个。谢谢。 – mrbrdo 2013-04-24 13:23:15

2

IMO,服务是您的域的抽象。 Lib的东西是为了方便课程,其他的东西不直接与你的模型有关。