2016-06-30 32 views
-1

讓A,B,C,D成爲Moose類。Perl中的共享基類的多重繼承Moose

讓B和C從A繼承咱們也可爲d來自B和C.繼承

將與「重複」屬性(從A出現在B和C的屬性)會發生什麼?

+0

避免像瘟疫一樣的多繼承。避免像流感一樣的遺傳。在適用的情況下,請使用角色。 –

回答

2

參見Method Dispatch Order現代的Perl

方法調度指令(或方法的解析順序或MRO)是用於單父類明顯。查看對象的類,然後查看它的父對象,等等,直到找到該方法或用完父代。從多個父母繼承的類(多重繼承) - Hovercraft延伸船和轎車 - 需要更棘手的調度。 有關多重繼承的推理非常複雜。儘可能避免多重繼承。(強調我的)

Perl 5使用深度優先方法解決策略。在搜索後續父代的類之前,它將遞歸地搜索第一個父親的父類和父親的所有父類。 mro編譯指示(Pragmas)提供了替代策略,包括C3搜尋任何父母之前搜索給定類別的直系父母的MRO策略。

+0

這不是一個答案:我問的是分享領域而不是方法。所以(恕我直言)方法調度順序是不是我問的東西 – porton