当前位置:  开发笔记 > 编程语言 > 正文

如何重命名Perl的Moose模块提供的默认构造函数?

如何解决《如何重命名Perl的Moose模块提供的默认构造函数?》经验,为你挑选了1个好方法。

有没有办法将Moose提供的默认构造函数重命名为"new"以外的其他东西?

我想这样做是为了使脚本更加用户友好,因为将构造函数命名为不同的东西更有意义(比如"make_thing")

my $object = Class->make_thing();

我怎样才能做到这一点?


让我举个例子说明这可能对用户更友好......

假设我正在构建一个处理CVS存储库信息的模块,该模块称为"CVS".我可以使用创建存储库的实例

$repository = CVS->new()

或者,如果我可以更改构造函数的名称,我可以称之为

$repository = CVS->get_repository()

这将使用户更具逻辑意义.



1> oalders..:

有时候有替代构造函数是有意义的.例如,如果你看一下Net :: Works :: Network,它有new_from_stringnew_from_integer方法.new除非你有充分的理由,否则我会远离使用其他东西.话虽如此,如果您认为它对用户更有帮助,您可以添加一种便捷方法.

sub get_repository {
    my $class = shift;
    return $class->new( @_ );
}


它并不完全"重命名"`new`,但这种方法会更好我猜,因为它仍然保留`new`作为一个有效的构造函数,允许人们使用它,如果他们愿意的话.
推荐阅读
ifx0448363
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有