• [^] # Re: Mes deux centimes ...

    Posté par . En réponse au journal Repenser les langages et le développement logiciel. Évalué à 3.

    Je vais répondre dans le désordre, ça évitera les redites.

    Je ne comprends pas ce que ça veut dire (est-ce que parler de « services » est une façon cachée de parler d'interfaces ?).

    Services, interface (au sens Java ou CORBA), fonctions, méthodes, comportements, ça représente à peu de choses près la même chose : les messages auxquels l'objet peut répondre.

    Ca veut dire quoi séparer proprement ? Je vais pas m'amuser à dupliquer (proxy) pour le plaisir d'avoir un beau design qui plait aux théoriciens.[...] existantes.

    Cela dépend de ce que tu veux au final. P.ex. si tu veux pouvoir réutiliser la partie calcul avec une UI totalement différente ou si tu es à peu près sûr que cela ne te reservira jamais.

    Dans tous les cas tu réutilises les classes existantes, mais pas de la même façon, donc pas avec les mêmes avantages/inconvénients.

    En gros, tu as trois façons :
    1. une seule hiérarchie ou tu mélanges tout,
    - avantage : tout au même endroit ;
    - inconvénients : tout au même endroit, pas de modularité, ce n'est plus du couplage fort, c'est de la fusion ;
    - avis personnel : vilain, caca, pouah, pas glop !
    2. une hiérarchie calcul et une hiérarchie UI, avec les classes de l'UI qui utilisent (agrégation) les classes calcul,
    - A : couplage faible entre calcul et UI ;
    - I : une indirection supplémentaire (pour accéder à une donnée, il faut passer par l'agrégé ) ;
    3. une hiérarchie calcul et une hiérarchie UI, avec les classes de l'UI qui héritent des classes de calcul,
    - A : couplage plus faible que 1. ;
    - I : mais plus fort que 2. ;
    - autre A : un peu moins d'indirections ;
    - autre I : confusion possible entre utiliser et hériter.

    Je pense qu'hériter au lieu d'utiliser est une mauvaise chose car ce sont deux mécanismes conceptuellement différents. Ce que tu proposes c'est d'utiliser l'héritage à la place de l'agrégation pour
    - raccourcir le code (mauvaise raison) ;
    - simuler un mixin (meilleure raison mais encore faut-il :
    1. le savoir ;
    2. le noter (commentaires)).

    Maintenant, tout ce que je dis ne sert à rien et n'avancera à rien si, comme pourrait sembler le faire penser l'exemple Laguna, tu ne fais pas la différence entre hériter et utiliser.