tjw*_*992 1 perl constructor moose
有没有办法将Moose提供的默认构造函数重命名为"new"以外的其他东西?
我想这样做是为了使脚本更加用户友好,因为将构造函数命名为不同的东西更有意义(比如"make_thing")
my $object = Class->make_thing();
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
让我举个例子说明这可能对用户更友好......
假设我正在构建一个处理CVS存储库信息的模块,该模块称为"CVS".我可以使用创建存储库的实例
$repository = CVS->new()
或者,如果我可以更改构造函数的名称,我可以称之为
$repository = CVS->get_repository()
这将使用户更具逻辑意义.
有时候有替代构造函数是有意义的.例如,如果你看一下Net :: Works :: Network,它有new_from_string和new_from_integer方法.new除非你有充分的理由,否则我会远离使用其他东西.话虽如此,如果您认为它对用户更有帮助,您可以添加一种便捷方法.
sub get_repository {
my $class = shift;
return $class->new( @_ );
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
125 次 |
| 最近记录: |