抱歉,我原来的问题似乎无法正确解释我在做什么和我想要实现的目标。这是一个更新的问题。
这可能是最简单的问题,但我找不到任何答案。
我有一个很大的 Perl 模块(比如 ABC.pm),随着我们添加新功能,它每天都在增长。这些功能中的大多数(几乎 90%)发送请求并处理响应。这是一个此类请求的一些代码。
sub UserDeleteRequest
{
my ($self, $inputParam) = @_;
my $config = $self->getConfig();
return $self->_doRequest (REQUEST => 'UserDeleteRequest',
PARAM => $inputParam));
}
与此类似,编写了其他功能,并随着我们添加新请求而不断增长。
拥有一个大文件变得越来越难以维护。因此,我正在寻找一些最佳实践来使这更容易。我想到的一个想法是将这个大模块拆分成多个文件(如何??)
最佳答案
听起来你应该创建一个抽象类,你可以让其他类继承和覆盖它。以您相当模糊的示例为例,您的模块可能如下所示:
use strict;
package Foo;
sub new {
my $class = ref(shift) || shift;
my $self = {};
bless( $self, $class );
return $self;
}
sub processFooRequest {
...
}
sub processFooResponse {
...
}
您可能会有一个子类 Foo::Web,它可能看起来像这样:
use strict;
package Foo::Web;
use base "Foo";
sub processFooWebRequest {
...
}
sub processFooWebResponse {
...
}
在这种情况下,我没有费心使用新的构造函数,因为它继承自 Foo。我可以让这些方法具有相同的名称,它们将简单地覆盖——实际上这可能是我应该做的——保持名称相同但改变内部功能。 Foo 中定义的任何其他方法都将被继承。
关于perl - 将一个大模块分成多个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11028152/