gpt4 book ai didi

perl - 驼鹿还是元?

转载 作者:行者123 更新时间:2023-12-02 16:58:38 27 4
gpt4 key购买 nike

我尝试了多种方法来做到这一点,但没有一种方法看起来足够优雅。 (我还想知道 CPAN 或 Moose 是否已经有了这个。随着时间的推移,我所做的数十次搜索都没有显示出任何完全匹配的内容。)

我想创建一种类型的类

  • 是其他类的 Base + Facade + Factory,它们将自身加载为目标类型。
  • “工厂”只是Base->new( %params ),它根据各个子类注册的策略创建类型。
  • 每个子类都知道有关基类的的基本知识,但我试图将其保持在最低限度。请参阅下面的示例:UnresolvedPath 只知道我们应该首先检查是否存在。

最明显的例子是文件系统目录和文件:

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] };
  • 问题:Moose 是否为此提供了优雅的解决方案?或者我是否必须进入 Class::MOP 进行批量处理?

最佳答案

关于perl - 驼鹿还是元?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/651237/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com