De ce que je peux dire de Scala et hack-
Mélangements:
A
_ mixe dans B
et C
, A instanceof B == false
et A instanceof C == false
Traits:
A
implémente les traits B
et C
, A instanceof B == false
et A instanceof C == false
Est-ce correct ou je manque quelque chose? Ces définitions sont-elles exactes pour tout OO Language ou juste pour ceux mentionnés ci-dessus?
PHP n'a pas de concept de mélanges, mais elle a traits qui ressemblent à un mélange de traits et de mélanges de Hack/Scala:
Ces définitions sont-elles exactes pour tout langage OO ou uniquement pour ceux mentionnés ci-dessus?
Je ne pense pas qu'il y a même une seule chose qui fonctionnera de la même manière dans tous les langues OO. Même certaines bases telles que l'héritage et les interfaces ont des variations, ne mentionnent pas des constructions plus floues telles que des traits/mélanges.
Les traits sont un accès statique dans PHP comme expliqué par Benjamin Eberlei sur son blog . Ils sont similaires à la pâte de copie automatisée du code.
Cela ne signifie pas que les traits sont absolument pervers, mais ils imposent la plupart du temps à des problèmes de couplage.
Le mélange en général est l'utilisation habituelle (un peu sûre) de multiples héritage. Languies à base de multiples héritages et par référencement (canard) typing comme Python Offrez des utilisations élégantes pour les mélanges.