> Como bien sabés no hay métodos privados en Smalltalk, y el comment que
> se usa como "Private..." orienta a que se use preferentemente con el
> mismo objeto como emisor. No indica que no se debe usar.
> Un método tiene tantos motivos para existir como senders en la imagen
> donde vive, si no hay senders  (references en Dolphin) no hay razones
> para existir.

Supongamos un tipico metodo de Integer:

+ aNumber

  self subclassResponsibility


En efecto, + se redefine en SmallInteger y los LargeIntegers, asi que
la implementacion de Integer efectivamente no tiene senders.  Pero
esto no quiere decir que haya que borrar Integer>>+ junto con todos
los otros senders de subclassResponsibility y shouldNotImplement.

Con los accessors a veces pasa algo parecido.  En general puede ser
que casi nunca sea absolutamente necesario mandar un accessor privado
(porque se puede hacer referencia directa a las variables de
instancia), pero el dia que hace falta debuggear vienen bien.

> Incluso fijate que #instVarAt: tiene muchos senders (o razones para
> existir), por lo tanto no considero conveniente considerar a dicho
> método como un "truco" o como algo "bruto" necesariamente. De la misma
> manera hay métodos con baja popularidad como #become:, #allInstances,
> #isKindOf y otros tantos que suelen generar conflictos con los dogmas
> de diseño. Sin embargo cada uno de ellos tiene muchos senders y en la
> mayoría de los casos, muy bien justificados.

Y si... sin un caso concreto (o sea, si no esta claro que es lo que se
quiere), es dificil decir si become: o isKindOf: esta "bien" usado.

Andres.

--~--~---------~--~----~------------~-------~--~----~

To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]

http://www.clubSmalltalk.org
-~----------~----~----~----~------~----~------~--~---

Responder a