Le plus bel exemple de polymorphisme

D’après ce billet de Jan Szumiec (qui était également à la conférence ESUG 2006 à Prague), le plus bel exemple de polymorphisme qui soit est celui de l’implémentation des classes True/False de Smalltalk. Il donne quelques explications en utilisant une syntaxe Java ou Ruby pour que cet exemple soit compréhensible par tout le monde. Pour Jan, cet exemple devrait être enseigné pour montrer l’intérêt du polymorphisme plutôt que les exemples bateaux basés sur les figures géométriques. Beau compliment pour Smalltalk d’un rubyiste !
Il n’y a pas réellement de structures de contrôles comme des si-alors-sinon en Smalltalk, ce sont de simples envois de messages à true et false (uniques instances respectivement des classes True et False) avec comme paramètres des blocs de code. Il est également tout à fait possible de construire ces propres structures de contrôle qui vont dépendre de l’application.

Ce qu’il ne dit pas, c’est que pour des raisons de performances, l’utilisation du #ifTrue:#ifFalse est inliné de manière transparente. On a donc les performances tout en conservant l’uniformité conceptuelle.

WordPress database error: [Table 'doesnotunderstand.wp_comments' doesn't exist]
SELECT * FROM wp_comments WHERE comment_post_ID = '39' AND comment_approved = '1' ORDER BY comment_date


Subscribe

Subscribe to my RSS Feeds