潜在无限类型上的多态关联



我的情况是这样的。我是一名PHP开发人员,最近转为Rails开发人员。在PHP代码中,使用抽象类作为"基"类是一种非常常见的模式。当转移到我现在的Rails应用程序时,我在脑海中做了很多关于PHP的"预先规划",现在这让我有点头疼。

我有许多不同类型的发票。在PHP中,我将创建一个抽象类,并拥有扩展该类的不同类型的发票。我将通过在抽象类中保留重复的代码来DRY事情,生活是美好的。在rails中,事情的工作方式有点不同。

我似乎找不到一个完全符合我先入之见的模式。STI很好,但我讨厌所有空字段的想法,因为每个发票将有许多不同的字段。我已经接近多态关联使用一个模块来干我的代码。然而,无论我看到哪里,多态关联的使用方式都与我想要的不同。例如,在railcast中有三个不同的类,每个类都需要使用注释。这不完全是一回事。

所以这里是我的问题:我已经知道如何使用一个模块来DRY我的代码,但是我怎么能使用多态关联来提供类似的模块化我的代码作为"基"类做在php?仅供参考,我不能使用STI,因为最终会出现多少不同类型的发票是没有限制的。现在是1,但一个月后可能是20。

您可以使用另一个选项:多表继承。它的设置有点复杂,但它将为您提供STI中不存在的一些优势,以及多态性关联中不存在的一些优势。查看这篇文章,看看如何做到这一点。

最新更新