IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Design Patterns Discussion :

Des développeurs qui n'aiment pas la décoration?


Sujet :

Design Patterns

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 4
    Points : 4
    Points
    4
    Par défaut Des développeurs qui n'aiment pas la décoration?
    Bonjour nous réalisons un dictionnaire extenssible.
    Ma modélisation c'est donc orientée sur un parttern composite pour gérer le parcour au sein des têtes de chapitre, chapitre rubrique etc..
    Puis pour assuré l'extenssibilité je me suis basé sur un pattern décorateur.
    j'ai une interface IDico partagé par Mon DiocPerso et son décorateur DicoDeco (classe abstraite qui récupére l'instance du DicoPerso a l'appel de son constructeur).
    Puis j'etend Mon Dico à l'aide de concréte implémentant DicoDeco.

    Lors de la présentation de ma modélisation auprés de l'équipe de dévelloppement je rencontres la rétissance suiante:

    Ils préfère définir une abstraite pour définir les méthodes de base et gérés un liste de Dico concret...
    Du coup on obtient une classe chapeau qui gére la liste des Dicos et reprend l'intégralité des méthodes communes à chaque Dico afin de réorienté l'appel vers le(s) bon(s) dico(s) .

    Et pour le coup c'est moi qui trouve ça moche.

    Moi je trouves ça moche parceque l'on ne respect pas le vieil adage d'un code fermer en écriture mais ouvert en extenssion.

    Eux trouvent l'implémentation Decorateur complexe,ils préfèrent la liste de classe concréte qu'il trouve plus simple...

    C'est donc compléxité structurante contre simplicité pas trops POO.


    Et vous que pensez vous du Design Pattern Décorateur.

  2. #2
    Membre confirmé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Points : 558
    Points
    558
    Par défaut
    Bonjour,

    reprend l'intégralité des méthodes communes à chaque Dico
    Ce qui me gène dans leur solution c'est que certains Dico vont implémenter des méthodes qu'ils n'utiliseront pas...(si j'ai bien compris)
    Ta solution me semble cohérente, un lien qui leurs permettra de mieux comprendre : http://www.design-patterns.fr/Decora...-vente-de.html
    La patience est un arbre aux racines amères, mais aux fruits ci-doux.

  3. #3
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 241
    Points : 36 698
    Points
    36 698
    Par défaut
    Le pattern decorateur est puissant mais sa récursivité implicite le rend difficile à appréhender. C'est ce qui risque de déstabiliser un peu les développeurs pour leur faire préférer une implémentation plus lisible même si elle a le défaut d'étre plus compliquée.
    Pour autant que vos à priori soient fondés, essayez de leur montrer les avantages de votre approche dans les aspects "construction", "tests", "évolution" (comparée à celle qu'ils semblent préférer).

    -W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  4. #4
    Membre chevronné Avatar de chaplin
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 215
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 215
    Points : 1 819
    Points
    1 819
    Par défaut
    Comme tu l'expliques, je reste à la solution de la récursivité, mais faut il absolument un concept objet pour traité la récursivité, ça me laisse un peu perplexe en considérant les performances de ton appli.

    Je ne comprends la solution qu'ils préconisent.

  5. #5
    ndp
    ndp est déconnecté
    Membre actif Avatar de ndp
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 227
    Points : 255
    Points
    255
    Par défaut
    Il y a aussi une autre question de design souleve par ce pattern:

    Est-ce que la nouvelle responsabilite que tu veux rajouter, s'applique a toutes les instances de ta classe ou seulement a quelques instances.
    • Si elle s'applique a toutes les instances: la facon standard d'ajouter une nouvelle responsabilite est de la faire implementer par la classe.
    • Si tu veux etendre la responsabilite de certaines instances seulement, le dp decorateur te le permet.


    En me posant cette question, dans la majorite des cas, la responsabilite concerne la classe. Le design est simplifie, parce que tu n'as pas cette "recursion", qui fait que pour savoir ce que peut faire un objet, tu es oblige de savoir comme il a ete construit a l'execution.

  6. #6
    Membre expérimenté
    Avatar de Patriarch24
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2003
    Messages
    1 047
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 047
    Points : 1 640
    Points
    1 640
    Par défaut
    Euh si j'ai bien compris, DicoDeco sert à ajouter des méthodes de recherche dans le dictionnaire DicoPerso, c'est bien cela ? Ou alors je n'ai pas compris et il faut m'expliquer si ce n'est pas trop tard bien sûr...
    En premier lieu, utilisez un moteur de recherche.
    En second lieu, postez sur le forum adéquat !

Discussions similaires

  1. Des panel qui ne changent pas de couleur
    Par richard038 dans le forum Composants VCL
    Réponses: 7
    Dernier message: 24/03/2006, 10h37
  2. Interdire des navigateur qui ne sont pas a jour ?
    Par allpicI2c dans le forum Général Conception Web
    Réponses: 5
    Dernier message: 28/01/2006, 19h30
  3. UNION ? des lignes qui ne sont pas prises...
    Par fred23195 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 01/12/2005, 15h50
  4. [XSL][re] Ecrire des balise qui ne seront pas interpretées
    Par FrRoulio dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 17/03/2004, 13h32
  5. la liste des clients qui n'ont pas acheter aucun article ...
    Par TéBeSsI dans le forum Langage SQL
    Réponses: 6
    Dernier message: 13/02/2004, 15h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo