我写了一个类foo.pm
,它从Web服务中收集一些数据。在foo.pm
内部,我添加了perldoc来描述功能以及使用的简短指南。它的所有方法都有参考。
我还编写了一个子类cachedFoo.pm
,它使用foo.pm
作为基类,围绕foo
的{{1}}方法包装自己的构造函数并升级{{ 1}}使用数据库连接来缓存结果。我已经为new
添加了perldoc以获取更多内容。
现在我只希望我的同事们使用foo
。我应该将所有继承方法的perldoc从cachedFoo.pm
复制到cachedFoo.pm
,还是应该说“查看基类的访问者文档”?或者可能有另一种方式?
答案 0 :(得分:3)
不要重复文档,它会不同步,只提供原始文档的链接并记录差异。
答案 1 :(得分:3)
在界面描述的开头附近,可以明确地指出其他类,请参阅下面的最佳实践文档示例。然后,您的pod覆盖测试应该使用Pod::Coverage::CountParents来考虑继承。
package cachedFoo;
⋮
=head1 INTERFACE
=head2 Composition
cachedFoo
ISA foo
DOES somerole
All methods and attributes not mentioned here are
inherited from L<foo> or mixed in from L<somerole>.
=head2 Methods
=head3 C<cache_database_thing>
Blah blah blah, Mr. Freeman
明确命名每个组合方法不会缩放。我不能推荐这个:
=head3 C<quux>
See L<foo/quux>.
答案 2 :(得分:2)
您应该考虑重命名模块。我认为Foo :: Cached是常见的做法。我通常只在相关部分表示继承,例如:
=head1 METHODS
L<Foo::Cached> inherits all methods from L<Foo> and implements the following methods by itself:
...
如果您仍想查看所有继承的方法,可以使用Pod::Inherit创建临时podfile,其中还包含来自父模块的POD(或者如果要构建更大的POD,可以尝试{{3 }}