【问题标题】:HTML::FormHandler roles vs fieldsHTML::FormHandler 角色与字段
【发布时间】:2013-02-01 18:43:54
【问题描述】:
我正在使用HTML::FormHandler,为了不重复大量代码,我试图按照HTML::FormHandler Cookbook 的建议将我的表单拆分为可重复使用的部分。它讨论了能够创建自己的字段或自己的角色来完成此任务,但是我无法真正区分两者之间的明确区别。我知道它们在您实现/使用它们的方式上有所不同,但据我所知,它们似乎非常相似地完成了相同的事情。我的问题是在任何情况下使用其中一种是明确的选择吗?或者这是一种更倾向于偏好的东西?谢谢您的帮助。我想在代码投入生产之前就这样做,以后更难更改:)
【问题讨论】:
标签:
perl
forms
moose
catalyst
【解决方案1】:
一种选择是使用 Moose 类,另一种是使用 Moose 角色。
概念略有不同。这是来自Moose Roles manual的sn-p:
角色封装了一些可以共享的行为或状态
课间。这是班级所做的事情。重要的是要
了解角色不是类。您不能从角色继承,
并且角色不能被实例化。我们有时说角色是
由类或其他角色使用。
类让您可以使用继承,当您想要共享功能而不需要继承时,角色是很好的选择。
有关您何时希望/不想使用继承的(人为的)示例,请参阅Roles vs Inheritance 上的这篇文章