• [^] # Re: Concours de b.....

    Posté par (Mastodon) . En réponse à la dépêche Sortie de Ruby on Rails 2.0. Évalué à 5.

    C'est plus rigoureux, mais ça t'oblige à recopier tout le génome du canard dans ton mutant, même les bouts dont tu n'as pas besoin. Avec le duck typing, tu n'as besoin d'implémenter que les méthodes que tu utilises.

    En particulier, si tu as seulement besoin que ton "canard" flotte, tu n'as pas besoin d'implémenter le cancannement. Et donc, tu peux faire:

    class Sorcière
    def flotte
    ...
    end
    end

    Et ensuite utiliser ta sorcière comme un canard dans certains cas, malgré le fait qu'elle ne fasse pas "coin".

    L'idéal serait de pouvoir faire les deux, et de pouvoir spécifier dans la signature de ta méthode que tu veux un objet répondant à un ensemble de méthodes. Je crois me souvenir avoir vu quelque chose de semblable dans le système d'objets d'OCaml. Le type des objets était représenté par la liste de leurs méthodes, si je ne me trompe pas.