From: Nicolas P. <npa...@cu...> - 2003-12-29 13:45:32
|
En función de esto, yo decía que el lenguaje no necesitaría en principio diferenciar entre getters y atributos, ejemplo: si yo pido documento.pais busca primero un getPais() y si no lo encuentra busca el atributo pais. El lenguaje se podría extender un poquito para bypasear ese comportamiento que sería el default, ahora no se me ocurre nada mejor que agregarle un chirimbolo (algo como documento.#pais) que indicaría que aunque exista getPais() yo quiero al atributo. No me preocupa demasiado que quede muy lindo porque sería algo muy raro de usar. De hecho creo que habría que discutir si está bueno ponerle ese feature. También podría haber opciones para pedir un método sí o sí, una simple es documento.getPais(). (No sé si me gusta mucho). Otra que habría que pensar es si siempre se accede a los métodos/atributos aunque sean privados o en algún caso me interesa asegurarme de que le estoy pegando a la parte pública del objeto (¿y protected?). Si es así habría que pensar extensiones para eso. Igual creo que lo importante es mantener la simplicidad del caso más común, que creo que es -pegarle a cualquier elemento sea público o privado. -buscar primero el método y si no está el atributo. Para ese caso usaría 'documento.pais', si los demás son un poco más complicados no me jodería. -----Original Message----- From: Hernan Liendo <her...@de...> To: ObjectBase SF <obj...@li...> Date: Sat, 27 Dec 2003 23:05:56 -0300 Subject: [Objectbase-devel] Voluntario: Codificación de funcionalidad de reflection > > Necesito que alguien evalue, diseñe y desarrolle un módulo que me > permita acceder a cierta propiedad de un objeto dentro de una jerarquia > de objetos sin que estos sean necesariamente beans. > > Ejemplo: > > tengo este dominio de objetos > > Class: Cliente > +getDocumento:Document > +setDocument(Documento) > ... > > Class: Documento > +getPais:Pais > +setPais(Pais) > ... > > Class: Pais > +getNombre:String > +setNombre(String) > ... > > Si yo tuviera una instancia de cliente y quisiera conocer el nombre del > pais al que corresponde su documento utilizando > common-beanutils yo podria tirar: > > String _nombrePais = BeanUtils.getProperty("documento.pais.nombre", > _cliente); > > Eso funciona perfecto si las clases son beans y es lo que estoy usando > con composite queries. > Lo que se necesita que es esto funcione tambien en objetos no-beans. > > Deberiamos pensar en un lenguaje similar al "documento.pais.nombre" que > sea sencillo > de usar y que pueda expresar como llegar a una propiedad de un objeto > interno. > > La propiedad puede ser un atributo o un metodo. > > Como regla general: todo lo que pueda inferir es mejor, si no se puede > inferir o toma un matiz "dificil de que > alguien entienda como funciona" mejor que no infiera. Por ejemplo, se > puede inferir si algo es metodo o atributo. > > Creo que esto esta bueno para desarrollar entre una o dos personas. > El mecanismo seria ir tirando las ideas ANTES de codificar. > > SaludOBs > |