• [^] # Re: Hum... [première partie]

    Posté par . En réponse à la dépêche Comprendre les Design Patterns. Évalué à -1.

    Je pense que le terme Erreur Grave doit être
    remis dans un contexte saint.

    C'est une introduction donc je n'aborde pas
    tous les sujets.

    Concernant les interfaces et les classes abstraites,
    elles appartiennent à la même famille décrivant
    des squelettes de classes plus ou moins
    complet. La distinction n'est pas clairement faite
    ici car l'article tente (et je dis bien tente)
    d'être généraliste, or le concept d'interface
    se traduit par une classe abstraite en C++.

    D'autre part, l'héritage entre interface existe
    même avec une classe (hé oui, cela n'a
    à priori aucun sens), donc je te laisse conclure:

    // Ce code était présent dans l'outil WebObject
    public interface Toto extends java.lang.Object {
    }

    Donc l'interface Java est traitée comme une
    classe abstraite particulière. Je reconnais que
    extends et remplaçé par implements à l'usage mais
    c'est pour forcer l'usage de l'interface pas
    pour renforçé la différence de l'interface
    et de la classe abstraite.

    Concernant l'héritage de classe et l'héritage
    d'interface. Il faudrait peut être que tu
    lises l'article en entier et notamment la ligne
    suivante sur l'implémentation.

    Un standard est avant tout défini par un
    organisme indépendant, gamma et compagnie
    ne forme en aucun cas un organisme de contrôle
    et d'évolution des design patterns.

    Par exemple :

    Je viens de me définir une nouvelle norme pour
    les fabriques.

    public class ObjectBuilder {
    public ObjectBuilder( ClassLoader loader )...
    public Point getPoint( int x, int y )...
    public void setDelegate( ObjectBuilder ob )...
    }


    Encore une avec une hierarchie

    public class ObjectCreator {
    public Object getObjectForName( String name );
    public ObjectCreator getParent();
    }

    Encore une

    public class NewObject {
    public Instance getNewObject();
    }

    public interface Instance {
    public Object getObject();
    }

    Bref on peut faire tout et n'importe quoi autour
    des designs patterns alors pour moi il n'y a
    ni norme ni standard.

    Concernant ta dernière remarque toujours aussi
    grave, commence déjà par lire sérieusement
    l'article avant d'écrire au hasard.