使用角色的改进(Moo :: Role or Role :: Tiny或者其他)
with qw(
Some::Role
Some::Other::Role
);
...
some_roles_method();
只是从mixin类中明确导入函数
use Some::Role qw/some_roles_method/;
...
some_roles_method();
很多,包括更多的灵活性,更少的簿记(特别是如果有很多方法被导入),而不是覆盖现有的方法。
但是一个很大的缺点是,如果您正在阅读代码并遇到some_roles_method()
的提及并且您想要阅读该功能,那么它并不是立即显而易见的。您可以告诉的是,它未在此文件中定义。
有没有什么好的策略来处理?我是唯一一个困扰的人吗?
答案 0 :(得分:0)
我能想到的唯一一件事就是用POD彻底记录所有内容。但当然这需要很多的纪律。
use Moo;
with 'Role::Reader', 'Role::Writer';
# ...
=head1 METHODS
=head2 frobnicate
Frobnicates the foo.
=cut
sub frobnicate { ... }
=head2 write_cheque
This method is documented in L<Role::Writer>.
=head2 write_autograph
This method is documented in L<Role::Writer>.
=head2 read_mind
This method is documented in L<Role::Reader>.
=head2 read_book
This method is documented in L<Role::Reader>.
=cut
1;