Perl编程技巧:对象处理与调试
1. 让对象真正实现多态
在编程中,很多人认为继承是面向对象编程的核心特征,但实际上多态更为重要。多态强调的是当你调用一个对象的 log() 方法时,它能正确记录其内部状态,而不是它是否继承自某个抽象的 Logger 类。在 Perl 6 中,角色(roles)鼓励这种设计;在 Perl 5 中,你可以自己构建,也可以使用 Class::Trait 将复杂操作分解为自然、命名的方法组。
1.1 示例应用
假设你正在构建一个具有抽象模型、视图和控制器的应用程序,有多种输出类型,如标准 XHTML、移动设备的简化 XHTML 以及用于 RESTful Web 服务和用户界面的 Ajax 或 JSON 输出。每个视图都有对应的视图类,但在处理传入请求时,如何选择合适的视图是个问题。
可以将视图声明为特征(traits),并将其应用于模型对象,以正确渲染数据。以下是示例代码:
# 模型类
package Model;
sub new
{
my ($class, %args) = @_;
bless \%args, $class;
}
sub get_data
{
my $self = shift;
my %data = map { $_ => $self->{$_} } qw( name occupation age );
return \%data;
}
1;
# 视图类
package View;
use C
超级会员免费看
订阅专栏 解锁全文
11

被折叠的 条评论
为什么被折叠?



