-- To post to this group, send email to [hidden email] To unsubscribe from this group, send email to [hidden email] http://www.clubSmalltalk.org |
Creo.. (no tengo mucho tiempo en dolphin) si agregas los accessor en el package de tu proyecto como loose methods.. te agrega directamente la clase como dependencia...
Saludos...
--
2010/6/2 Jose Gregoris <[hidden email]>
To post to this group, send email to [hidden email] To unsubscribe from this group, send email to [hidden email] http://www.clubSmalltalk.org |
In reply to this post by Jose Gregoris
Kiko,
cómo andás? No se para que hiciste eso pero creo que te va a convenir subclasificarla, agregarle las variables de instancias y métodos que necesites que esa subclase agregarla al package que corresponde y listo.
Abrazo, Facu
-- 2010/6/2 Jose Gregoris <[hidden email]>
-- Facundo Vozzi InfOil S.A. Project Leader (+54-11) 4542-9999 x108 [hidden email] To post to this group, send email to [hidden email] To unsubscribe from this group, send email to [hidden email] http://www.clubSmalltalk.org |
-- To post to this group, send email to [hidden email] To unsubscribe from this group, send email to [hidden email] http://www.clubSmalltalk.org |
In reply to this post by Diogenes Moreira
-- To post to this group, send email to [hidden email] To unsubscribe from this group, send email to [hidden email] http://www.clubSmalltalk.org |
In reply to this post by Jose Gregoris
Le voy a revisar el código al Gallego a ver si nunca hereda por implementación :-)
Yo creo que es más mantenible, si es que estás necesitado de agregar una v.i a una clase de base, subclasificar pero si no lo querés hacer cambia de package la clase de base y listo.
Sino hacete tu clase de Aspects, ponele KAspects y hace un wrapper de Aspects. Abrazo P.D.: Es jodido estar en Capital después de los que nos pasó con Sarmiento pero hay que aguantar los trapos
2010/6/2 Jose Gregoris <[hidden email]>
-- Facundo Vozzi InfOil S.A. Project Leader (+54-11) 4542-9999 x108 [hidden email] To post to this group, send email to [hidden email] To unsubscribe from this group, send email to [hidden email] http://www.clubSmalltalk.org |
In reply to this post by Jose Gregoris
Kiko:
Podes poner algo por el estilo en el preInstallScript de tu package: CodePatcher patch: Locale addInstVarName: 'thousandSeparator'. CodePatcher sirve para otras cosas y es útil justamente para trabajar sobre código que no es nuestro.
Si queres agregar una subclase como decia Facundo tambien puede ser, si dejas el métodos que instancia en Aspect, en forma abstracta, como un factory ya no tenes que acordarte de que clase se debe instanciar.
Yo no se porque prefiero el CodePatcher si es poca cosa. Saludos GallegO
-- El 2 de junio de 2010 11:37, Jose Gregoris <[hidden email]> escribió:
To post to this group, send email to [hidden email] To unsubscribe from this group, send email to [hidden email] http://www.clubSmalltalk.org |
-- To post to this group, send email to [hidden email] To unsubscribe from this group, send email to [hidden email] http://www.clubSmalltalk.org |
In reply to this post by fvozzi
-- To post to this group, send email to [hidden email] To unsubscribe from this group, send email to [hidden email] http://www.clubSmalltalk.org |
In reply to this post by Sebastian Calvo
-- To post to this group, send email to [hidden email] To unsubscribe from this group, send email to [hidden email] http://www.clubSmalltalk.org |
In reply to this post by Jose Gregoris
Upa
Me parece que deberian estar en las goodies que podes bajar de aca: Saludos
-- El 2 de junio de 2010 15:48, Jose Gregoris <[hidden email]> escribió:
To post to this group, send email to [hidden email] To unsubscribe from this group, send email to [hidden email] http://www.clubSmalltalk.org |
In reply to this post by Jose Gregoris
Buenas,
Me permito opinar del tema. No laburé nunca con Dolphin, más que algún tp para la facu hace... casi 7 años... (mierda como pasa el tiempo), pero me he encontrado varias veces con problemas parecidos. Creo que la solución óptima es aquella que evita tocar las clases básicas del sistema. Porque de esta forma puede empaquetarse fácilmente en tu aplicación y es perfectamente compatible con cualquier implementación. De esa forma, si tenés el codePatcher en tu aplicación, o es fácilmente portable, usalo. Si no, fijate de subclasificar. Personalmente, no conozco el code patcher, y siempre usé subclasificación para resolver estos problemas, más que nada porque te permite hacer cirugía de cerebro en tu propio cerebro. O sea, podés ir modificando y probando en la subclase y recién cuando estás seguro de que anda bien, cambiás globalmente la implementación default para que sea la tuya. Ahora, si es por ser prolijo, habría que pensar en un modelo que permita modificar el workflow de confirmación de los Aspects. O sea, creo que lo mejor sería tener reificado el circuito de actividades que deberían seguirse para poder completar tu acción, y en el medio agregar una aprobación. No es propio del aspect o de una subclase saber si se tiene que aprobar o no por el usuario, sino del contexto en el cual está tratando de realizarse y del workflow que tiene que seguir para poder hacerlo. Repito, al ser una clase base del sistema, no sé cuánto podés realmente tocar o no de esta operatoria (no sé en dolphin qué parte está en la vm) y tampoco cuánta complicación implica tener que modificar esto. Simplemente me parece que es una solución elegante. Si no, la más "prolija y sencilla", por decirlo de alguna forma, creo que es la subclasificación. Mis dos granos de arena. Saludos, Mariano. 2010/6/2 Jose Gregoris <[hidden email]>
-- To post to this group, send email to [hidden email] To unsubscribe from this group, send email to [hidden email] http://www.clubSmalltalk.org |
In reply to this post by Jose Gregoris
Kiko:
Como bien dice Mariano, fijate, es un tema de conveniencia. En ciertas ocasiones preferimos modificar la clase de base para no tocar más en otros lados. Por ejemplo, no se me ocurriria usar el CodePatcher con OrderedCollection.
En el caso de Aspect, en Dolphin, es una clase que esta por encima de Dolphin Base, es parte del Fw de Desarrollo y no del core de Smalltalk, asi que tenes que evaluar cuantos cambios o no queres hacer y cómo te gusta más.
Por ejemple, en el caso que te mande, considero que en Locale, falta la variable thousandSeparator, y lo veo más como una omision que como una extension, por lo tanto yo decidi modificar la clase y no extenderla. Imaginate, en ese caso, subclasificar quizas implicaria modificar unos cuantos metodos más inherentes a la inicializacion y finalizacion del image. Nunca sabes que podes llegar a romper.
Por otro lado siempre tenes que tener en cuenta que algunos objetos puede llegar a estar serializados y tanto si agregas inst vars como subclases siempre debes hacerlo con eso en mente. Igual pienso que esto es un tema no tan importante siempre y cuando seas prolijo en lo que haces para que luego al integrar todo en un NUEVO image, realice las modificaciones que vos queres, y NO estar dependiendo de un image base. De esa forma es mas facil actualizarse a nuevos images.
Saludos
-- El 2 de junio de 2010 16:38, Jose Gregoris <[hidden email]> escribió:
To post to this group, send email to [hidden email] To unsubscribe from this group, send email to [hidden email] http://www.clubSmalltalk.org |
Kiko
Por ahí lo más simple en este caso es crearte los accesors a una propiedad usando en esos para obtener y setear propertyAt: aSymbol ifAbsent: aBlock, etc.
Así te quedarían dos lose methods en tu proyect y listo.
Creo que podes hacer esto, no lo verifique.
Saludos
-- To post to this group, send email to [hidden email] To unsubscribe from this group, send email to [hidden email] http://www.clubSmalltalk.org |
In reply to this post by Mariano Abel Coca
-- To post to this group, send email to [hidden email] To unsubscribe from this group, send email to [hidden email] http://www.clubSmalltalk.org |
In reply to this post by Andrés Poncelas
-- To post to this group, send email to [hidden email] To unsubscribe from this group, send email to [hidden email] http://www.clubSmalltalk.org |
Tener algo del estilo
encoded
"Answer the value of the property #encoded of the receiver." ^self propertyAt: #encoded ifAbsent: [self propertyAt: #encoded put: false ] encoded: aBoolean
"Set the value of the property #encoded of the receiver with aBoolean." self propertyAt: #encoded put: aBoolean Reemplaza encoded por lo que vos queres.
El ejemplo esta copiado directo del dolphin.
Saludos
El 7 de junio de 2010 14:53, Jose Gregoris <[hidden email]> escribió:
-- To post to this group, send email to [hidden email] To unsubscribe from this group, send email to [hidden email] http://www.clubSmalltalk.org |
In reply to this post by Jose Gregoris
Kiko:
Esa funcionalidad esta implementada a nivel de Object. Para mi no es de uso general, me parece una especie de muleta por si en algun lado cuesta poner una variable de instancia, generalmente por temas de serializacion. Creo que para tu caso serviria tambien.
Saludos
-- El 7 de junio de 2010 14:53, Jose Gregoris <[hidden email]> escribió:
To post to this group, send email to [hidden email] To unsubscribe from this group, send email to [hidden email] http://www.clubSmalltalk.org |
Free forum by Nabble | Edit this page |