Auquel cas, quel est l'intérêt d'une interface comme décrit dans l'article sur des choses plus simples comme celles-ci ?
En pratique, il y a plus d'une méthode commune aux deux classes, et tu veux qu'elles dérivent de la même classe, pas seulement pour des question de typage mais aussi parce que ça explicite bien ce que tu veux faire, et c'est beaucoup plus maintenable. Par ailleurs tu peux plus facilement tester les paramètres qu'on te passe avec un truc du genre
if (machin.implements(telle_interface))
... ok
else
throw
end
Entre
class Foo
open()
close()
end
class Bar
open()
close()
end
et
Interface Stream
open()
close()
end
class Foo implements Stream
...
end
class Bar implements Stream
...
end
le 2nd cas est quand même plus clair, non ? Plus tu en dis au langage sur comment s'organisent tes classes, mieux c'est.
Je crois que tu devrais lire le Design Patterns :-).
[^] # Re: Une lecture intéressante
Posté par Guillaume Laurent . En réponse à la dépêche Comprendre les Design Patterns. Évalué à 4.
En pratique, il y a plus d'une méthode commune aux deux classes, et tu veux qu'elles dérivent de la même classe, pas seulement pour des question de typage mais aussi parce que ça explicite bien ce que tu veux faire, et c'est beaucoup plus maintenable. Par ailleurs tu peux plus facilement tester les paramètres qu'on te passe avec un truc du genre
if (machin.implements(telle_interface))
... ok
else
throw
end
Entre
class Foo
open()
close()
end
class Bar
open()
close()
end
et
Interface Stream
open()
close()
end
class Foo implements Stream
...
end
class Bar implements Stream
...
end
le 2nd cas est quand même plus clair, non ? Plus tu en dis au langage sur comment s'organisent tes classes, mieux c'est.
Je crois que tu devrais lire le Design Patterns :-).