Fonctionnement de base
Priorité de l'héritage
Dans le cas ou plusieurs modèles sont appliqués sur un élément leurs ordres d'affichage joue un rôle important. Il permet à Shinken Entreprise de connaitre quel modèle appliqué en priorité.
Les modèles sont parcourus dans le sens de lecture, de gauche à droite.
Puisque les modèles d'héritage peuvent eux-même hériter de valeurs provenant d'un ou plusieurs modèles, il peut devenir très compliqué de trouver quelle valeur aura la priorité.
Le schéma suivant devrait vous aider à y voir plus clair dans l'ordre de priorité:
Dans l'exemple ci-dessus, le modèle d'hôte 1 hérite du modèles 2 et le 5.
On constate que l'arbre d'héritage de chacun des modèles et parcouru à la suite des autres.
Héritage classique contre Héritage additif
La notion d'ordre de priorité a été abordée et l'on sait également qu'une valeur renseignée localement a toujours autorité sur la valeur définie dans un modèle hérité.
Cette dernière règle n'est cependant plus exacte si la fonction d'héritage additif est activé puisque les valeurs locales vont être concaténées avec les valeurs d'une chaine héritée.
Il devient alors intéressant de comprendre les mécanismes d'héritage plus en détail:
- Dans un héritage classique, le premier modèle dans l'arbre d'héritage à retourner une valeur est utilisé. Les modèles sont parcourus dans l'ordre de priorité jusqu'à trouver une valeur.
- Dans un héritage additif, le premier modèle dans l'arbre d'héritage à désactiver la fonction d'héritage additif est utilisé comme nœud de référence. À partir du nœud, le parcours de l'arbre d'héritage s'il existe continue en "Classique" ou "Additif" en fonction du contexte.
Pour étayer les deux mécanismes d'héritage, comparons deux versions de Shinken Entreprise.
Les versions 02.04.00 est précédente utilisent exclusivement l'héritage classique. La version 02.05.00 permet les deux types d'héritage.
Partant du postulat que tous les modèles ont activé l'héritage sur la propriété contacts_group;
Légende:
Dans l'exemple suivant, est plus complexe avec trois niveaux d'héritage.
On peut voir que dans la version 02.04.00, l'héritage s'arrête à la première valeur trouvée.
Tant dis que dans la version 02.05.00, chaque arbre est parcouru jusqu'à la détection de l'arrêt de l'héritage additif.
Légende:
Remarque: Pour obtenir un héritage classique il faut désactiver la fonctionnalité additive dans tout l'arbre d'héritage.








