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

你如何在Perl中创建对象?

如何解决《你如何在Perl中创建对象?》经验,为你挑选了4个好方法。

Perl具有OOP功能,但它们很少使用.如何使用方法和属性创建和使用Perl对象?



1> Pat..:

你一定要看看Moose.

package Point;
use Moose; # automatically turns on strict and warnings

has 'x' => (is => 'rw', isa => 'Int');
has 'y' => (is => 'rw', isa => 'Int');

sub clear {
    my $self = shift;
    $self->x(0);
    $self->y(0);
}

Moose免费为您提供构造函数,访问器方法和类型检查(除其他外)!

所以在你的代码中你可以:

my $p = Point->new({x=>10 , y=>20}); # Free constructor
$p->x(15);     # Free setter
print $p->x(); # Free getter
$p->clear();
$p->x(15.5);   # FAILS! Free type check.

一个很好的起点是Moose::ManualMoose::Cookbook

如果你只需要基本的东西,你也可以使用Mouse哪个不完整,但没有大部分的编译时间惩罚.



2> Penfold..:

麋,当然.

package Person;
use Moose;
has age => ( isa => Int, is => 'rw'); 
has name => ( isa => Str, is => 'rw'); 
1;

您可以立即免费获得new()方法,以及刚刚使用'has'定义的属性的访问器方法.所以,你可以说:

my $person = Person->new();
$person->age(34);
$person->name('Mike');
print $person->name, "\n";

等等.不仅如此,您的访问器方法也可以免费进行类型检查(您可以定义自己的类型以及标准类型).另外,你可以获得子类化的"扩展",角色/特征的'with',以及各种其他优秀的东西,它们可以让你继续完成编写优秀健壮的可维护OO代码的实际工作.

TMTOWTDI,但这个有效.



3> Matthew Wats..:

目前,每当我想要对象时,我都会使用Object :: InsideOut,它非常好,并且会比标准的祝福哈希对象提供很多功能.话虽如此,如果我开始一个新项目,我会认真看看穆斯.

虽然阅读官方PERL文档是好的,但我建议尝试使用自己的对象框架,或者使用哈希构建对象,它很容易走上简单的道路并"直接"进入对象"私有"变量完全打破封装,当你想要重构对象时,这会回来咬你.



4> Michael Cram..:

Perl对象不仅仅是祝福的哈希.他们是幸运的参考.它们可以(并且通常是)受祝福的哈希引用,但它们可以很容易地成为受祝福的标量或数组引用.

推荐阅读
TXCWB_523
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有