Perl Moose中来自共享基类的多重继承



设A, B, C, D为驼鹿类

让B和C都继承a。让D也继承B和C。

"重复"属性(A的属性同时出现在B和C中)会发生什么?

参见现代Perl:

中的方法调度顺序

方法调度顺序(或方法解析顺序或MRO)对于单亲类是很明显的。先查看对象的类,然后查看它的父类,依此类推,直到找到该方法或用完了父类。从多个父类继承的类(多重继承)——气垫船扩展了Boat和car——需要更复杂的调度。关于多重继承的推理很复杂。尽可能避免多重继承。(强调我的)

Perl 5使用深度优先方法解析策略。在搜索后续父类之前,它会递归地搜索第一个命名父类的类以及该父类的所有父类。mro pragma (Pragmas)提供了替代策略,包括C3 mro策略,它在搜索给定类的任何父类之前搜索它们的直接父类。

最新更新