好的,这就是我的情况。我是一名 PHP 开发人员,最近转为 Rails 开发人员。在 PHP 代码中,使用抽象类作为“基”类是一种非常常见的模式。在迁移到我当前的 Rails 应用程序时,我做了很多“预先计划”,脑子里有 PHP 的想法,现在让我有点头疼。
我有许多不同类型的发票。在 PHP 中,我将创建一个抽象类,并拥有扩展该类的不同类型的发票。我会通过在抽象类中保留重复的代码来干掉事情,生活是美好的。在 Rails 中,事情的工作方式有点不同。
我似乎找不到完全符合我先入为主的模式。STI 很好,但我讨厌所有 Null 字段的想法,因为每张发票都有许多不同的字段。我已经接近使用模块来干燥我的代码的多态关联。然而,在我看来,多态关联的使用方式与我想要的方式不同。例如,在 railscast 中有三个不同的类,每个类都需要使用注释。它不完全一样。
所以这是我的问题:我已经知道如何使用模块来干燥我的代码,但是如何使用多态关联为我的代码提供与 php 中的“基”类类似的模块化?仅供参考,我不能使用 STI,因为最终可以生成多少不同类型的发票没有限制。现在是 1,但一个月后可能是 20。