Discutiendo con un amigo que decía que Smalltalk no tenia herencia múltiple.

Aunque sea discutible la necesidad de herencia múltiple, me pregunte cuan
rápido se podrá implementar herencia múltiple en Smalltalk y poner a prueba
su flexibilidad.

En "7 líneas de código" o 5 minutos ... hice esto:

 

Se puede discutir sobre la validez de la implementación (la variable #
superinstances y sus implicaciones) pero NO es el punto central. 

Lo central es que si en 5 minutos se puede hacer esto, que será después de
estar un año trabajando sobre un tema... 

Implementa algo así en C# (u otro) valor!!!

 

Object subclass: #HerenciaMultiple

            instanceVariableNames: 'superinstances'

            classVariableNames: ''

            poolDictionaries: ''

            classInstanceVariableNames: ''

 

initialize

 

            super initialize.

 

            superinstances := OrderedCollection new.

 

            superinstances addAll: (self superclasses collect: [:each | each
new initialize])

 

doesNotUnderstand: failedMessage

 

            superinstances do: [:each | | result |

                        [result := each perform: failedMessage selector
withArguments: failedMessage arguments] on: Error do: [:ex | ].

                        result ifNotNil: [:value | ^value]].

 

            ^super doesNotUnderstand: failedMessage

 

Object

            Lagarto

            Pajaro

            HerenciaMultiple

                        Dragon

 

Dragon class 

superclasses

 

            ^OrderedCollection with: Lagarto with: Pajaro

 

Saludos,

bruno

 


No virus found in this outgoing message.
Checked by AVG. 
Version: 7.5.524 / Virus Database: 269.23.2/1387 - Release Date: 4/19/2008
11:31 AM
 

--~--~---------~--~----~------------~-------~--~----~
Has recibido este mensaje porque estás suscrito a Grupo "ClubSmalltalk" de 
Grupos de Google.
 Si quieres publicar en este grupo, envía un mensaje de correo 
electrónico a [email protected]
 Para anular la suscripción a este grupo, envía un mensaje a [EMAIL PROTECTED]
 Para obtener más opciones, visita este grupo en 
http://groups.google.com/group/clubSmalltalk?hl=es.

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

Responder a