• [^] # Re: Une lecture intéressante

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

    Mais avec un typage dynamique, peu importe que tu sois en présence de la classe toto ou de la classe titi, car si tu fais machin.méthode(truc) il se débrouillera dans les deux cas.

    Je ne comprends toujours pas. Je présume que "machin" est un nom d'objet d'un certain type (class toto ou titi).

    Partant de là, en Python ou n'importe quel autre langage objet, soit les classes toto et titi définissent la méthode 'méthode' prenant un 'truc' comme argument et ça passe, soit non et tu te prends une erreur à la compil dans le cas d'un langage fortement typé comme C++, ou une exception au runtime dans le cas d'un langage comme Python ou Ruby. Que tu ais un typage dynamique ou pas ne change rien au fond du problème, il faut que toto et titi aient la même interface.

    Ou alors tu veux peut-être dire qu'avec un typage dynamique, toto et titi peuvent définir deux méthodes avec le même nom et les mêmes arguments, mais sans hériter d'une classe commune, et qu'un truc comme

    def appelle_la_methode_foo (obj, arg)

    obj.foo(arg)

    end

    va passer, qu'on lui passe un objet toto ou titi. Là oui, c'est vrai. Mais le but de ce type de pattern est un peu plus complexe que ce cas là :-).