3

我正在使用HTML::FormHandler,为了不重复大量代码,我试图按照HTML::FormHandler Cookbook的建议将表单拆分为可重复使用的部分。它讨论了能够创建自己的字段或自己的角色来完成此任务,但是我无法真正区分两者之间的明确区别。我知道它们在实现/使用它们的方式上有所不同,但据我所知,它们似乎完成了相同的事情。我的问题是在任何情况下使用其中一种是明确的选择吗?或者这是一种更倾向于偏好的东西?谢谢您的帮助。我想在代码投入生产之前这样做,以后更难更改:)

4

1 回答 1

0

一种选择是使用 Moose 类,另一种是使用 Moose 角色。

概念略有不同。这是Moose Roles 手册的片段:

角色封装了一些可以在类之间共享的行为或状态。这是班级所做的事情。重要的是要了解角色不是类。您不能从角色继承,并且角色不能被实例化。我们有时会说角色被类或其他角色消耗。

类允许您使用继承,当您想要共享功能而不继承时,角色是很好的选择。

有关何时/不想使用继承的(人为的)示例,请参阅有关角色与继承的文章

于 2013-03-01T12:00:41.207 回答