perl – Moose或Meta?
发布时间:2020-12-15 23:37:22 所属栏目:大数据 来源:网络整理
导读:我一直试图通过多种方式做到这一点,但它们似乎都不够优雅. (我也想知道CPAN或Moose是否已经拥有此功能.随着时间的推移,我所做的几十次搜索都没有显示出相同的匹配.) 我想创建一种类 是其他类的基本外观工厂,它们将自己加载为目标类型. “工厂”只是Base- new
我一直试图通过多种方式做到这一点,但它们似乎都不够优雅. (我也想知道CPAN或Moose是否已经拥有此功能.随着时间的推移,我所做的几十次搜索都没有显示出相同的匹配.)
我想创建一种类 >是其他类的基本外观工厂,它们将自己加载为目标类型. 显而易见的例子是文件系统目录和文件: package Path; use Moose; ... sub BUILD { my ( $self,$params ) = @_; my $path = $params->{path}; my $class_name; foreach my $test_sub ( @tests ) { $class_name = $test_sub->( $path ); last if $class_name; } croak "No valid class for $path!" unless defined $class_name; $class_name->BUILD( $self,$params ); } package Folder; use Moose; extends 'Path'; use Path register => selector => sub { -d $_[0] }; sub BUILD { ... } package UnresolvedPath; extends 'Path'; use Path register position => 1,selector => sub { !-e $_[0] }; >问题:穆斯是否为此提供了优雅的解决方案?或者我是否必须批量进入Class :: MOP? 解决方法
看看
http://code2.0beta.co.uk/moose/svn/MooseX-AbstractFactory/,随意偷. (矿.)
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |