Pascal Bourguignon wrote:
(snip)
Oui, je sais que ma définition est un peu dure. Elle exclue les choses
comme les nombres des objets. Comme on ne peut pas modifier un
nombre, c'est qu'il n'a pas d'état, seulement une identité.
On peut aussi prendre une autre approche: les nombres ont un état (leur
valeur), mais cet état n'est pas modifiable.
Si on
accepte cette définition, Smalltalk y va un peu trop fort.
D'un autre côté, avoir une seule et même "abstraction de base" pour tout
un système n'est pas une mauvaise chose. En ce qui concerne Smalltalk,
dans la mesure où les structures de contrôles sont construites sur
l'envoi de messages, il était difficile de faire autrement...
J'admet qu'en pratique, en programmation objet, on peut considérer des
objets sans état, où seul l'identité de l'objet est utile.
Dans le cas des fonctions, le code de la fonction peut être vu comme
faisant partie de son état, puisqu'il détermine le comportement de
l'objet en réaction au message 'call'.
Mais
souvent ce sont ces cas limitites (par exemple, les singletons),
Dans la majorité des cas, l'utilité d'un singleton ne se limite pas à
son identité...
(snip)
--
bruno desthuilliers
python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for
p in 'onurb@xiludom.gro'.split('@')])"