Perl/OOP:如何在 "Class A" 的构造函数中创建 "Class B" 的对象
Perl/OOP: How to create object of "Class B" in constructor of "Class A"
我有 Class A 和以下构造函数:
sub new {
my ($class, %args) = @_;
return bless(\%args, $class);
}
我还有一个 class、LWP::UserAgent,我想用在我的 Class A 中。
我可以通过这样做来解决问题:
ua = LWP::UserAgent->new;
sub new {
my ($class, %args) = @_;
return bless(\%args, $class);
}
但在这种情况下,我将有 1 个 UserAgent 对象,但我希望 unique 对象用于 Class A.
的每个实例
然后您需要将该对象构造为属性
use LWP::UserAgent;
sub new {
my ($class, %args) = @_;
return bless { %args, lwp => LWP::UserAgent->new }, $class;
}
现在 class A 的每个对象都将具有属性 lwp
自己的 LWP::UserAgent
对象。
我当然希望在现实中写得很好,并进行了所有必要的错误检查。
而且我想最好为用户代理调用属性 ua
(而不是上面的 lwp
)。
我有 Class A 和以下构造函数:
sub new {
my ($class, %args) = @_;
return bless(\%args, $class);
}
我还有一个 class、LWP::UserAgent,我想用在我的 Class A 中。 我可以通过这样做来解决问题:
ua = LWP::UserAgent->new;
sub new {
my ($class, %args) = @_;
return bless(\%args, $class);
}
但在这种情况下,我将有 1 个 UserAgent 对象,但我希望 unique 对象用于 Class A.
的每个实例然后您需要将该对象构造为属性
use LWP::UserAgent;
sub new {
my ($class, %args) = @_;
return bless { %args, lwp => LWP::UserAgent->new }, $class;
}
现在 class A 的每个对象都将具有属性 lwp
自己的 LWP::UserAgent
对象。
我当然希望在现实中写得很好,并进行了所有必要的错误检查。
而且我想最好为用户代理调用属性 ua
(而不是上面的 lwp
)。