23、Perl 高级对象主题与模块导出器详解

Perl 高级对象主题与模块导出器详解

1. 测试对象的良好行为

1.1 UNIVERSAL 包的实用方法

在 Perl 中, UNIVERSAL 包不仅为我们提供了一个放置通用方法的地方,还预加载了两个非常有用的实用方法: DOES can 。由于 UNIVERSAL 定义了这些方法,所有对象都可以使用它们。

1.1.1 DOES 方法

DOES 方法从 v5.10 版本开始可用。在该版本之前,我们可以使用 isa 方法来实现类似的功能,但 isa 方法仅测试继承关系。 DOES 方法用于测试给定的类或实例是否提供了某种行为(即角色)。

例如,继续以之前章节中的 Animal 家族为例:

use v5.10;
if (Horse->DOES('Animal')) {    # does Horse do Animal?
  print "A Horse is an Animal.\n";
}
my $tv_horse = Horse->named("Mr. Ed");
if ($tv_horse->DOES('Animal')) { # is it an Animal?
  print $tv_horse->name, " is an Animal.\n";
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值