|
From: Juan P. P. <jua...@es...> - 2003-12-29 15:13:18
|
Coincido totalmente, eso mismo dec=EDa yo cuando discut=EDamos en la =FAl=
tima=20
clase de persistencia en tadp. Si realmente buscar por esos campos es=20
necesarios, pero no son visibles, hay algo mal en el modelo.
Jorge Campos wrote:
>No me convence mucho la idea de permitir realizar
>queries por atributos privados (o protected... lease
>no p=FAblicos).
>
>De hecho todo deber=EDa hacerse utilizando m=E9todos y no
>los atributos.
>
>Violar la encapsulaci=F3n para persistir el objeto es
>algo que "no afecta" el modelo y en cierto sentido no
>viola la encapsulaci=F3n de una manera "visible" al
>usuario. En cambio realizar un query
>objeto.atributo_privado =3D=3D dodo es claramente una
>violacion de la encapsulaci=F3n! y peor a=FAn es realizada
>por el usuario (el mismo dice eso).
>
>Si existe el caso donde se quiera buscar por algo
>privado es muy probable que ese algo no sea privado o
>haya alg=FAn error en el modelo.
>
>Jorge
>
>
>--- Nicolas Passerini <npa...@cu...> wrote:
> =20
>
>>En funci=F3n de esto, yo dec=EDa que el lenguaje no
>>necesitar=EDa en principio diferenciar entre getters y
>>
>>atributos, ejemplo: si yo pido documento.pais busca
>>primero un getPais() y si no lo encuentra busca el=20
>>atributo pais.
>>
>>El lenguaje se podr=EDa extender un poquito para
>>bypasear ese comportamiento que ser=EDa el default,
>>ahora no se=20
>>me ocurre nada mejor que agregarle un chirimbolo
>>(algo como documento.#pais) que indicar=EDa que aunque
>>exista=20
>>getPais() yo quiero al atributo. No me preocupa
>>demasiado que quede muy lindo porque ser=EDa algo muy
>>raro de=20
>>usar. De hecho creo que habr=EDa que discutir si est=E1
>>bueno ponerle ese feature.
>>
>>Tambi=E9n podr=EDa haber opciones para pedir un m=E9todo
>>s=ED o s=ED, una simple es documento.getPais(). (No s=E9
>>si me=20
>>gusta mucho).=20
>>
>>Otra que habr=EDa que pensar es si siempre se accede a
>>los m=E9todos/atributos aunque sean privados o en
>>alg=FAn=20
>>caso me interesa asegurarme de que le estoy pegando
>>a la parte p=FAblica del objeto (=BFy protected?). Si es
>>as=ED=20
>>habr=EDa que pensar extensiones para eso.
>>
>>Igual creo que lo importante es mantener la
>>simplicidad del caso m=E1s com=FAn, que creo que es
>>-pegarle a cualquier elemento sea p=FAblico o privado.
>>-buscar primero el m=E9todo y si no est=E1 el atributo.
>>Para ese caso usar=EDa 'documento.pais', si los dem=E1s
>>son un poco m=E1s complicados no me joder=EDa.
>>
>>-----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=F3n
>>de funcionalidad de reflection
>>
>> =20
>>
>>>Necesito que alguien evalue, dise=F1e y desarrolle
>>> =20
>>>
>>un m=F3dulo que me
>> =20
>>
>>>permita acceder a cierta propiedad de un objeto
>>> =20
>>>
>>dentro de una jerarquia
>> =20
>>
>>>de objetos sin que estos sean necesariamente
>>> =20
>>>
>>beans.
>> =20
>>
>>>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
>>> =20
>>>
>>conocer el nombre del
>> =20
>>
>>>pais al que corresponde su documento utilizando
>>>common-beanutils yo podria tirar:
>>>
>>>String _nombrePais =3D
>>> =20
>>>
>>BeanUtils.getProperty("documento.pais.nombre",
>> =20
>>
>>>_cliente);
>>>
>>>Eso funciona perfecto si las clases son beans y es
>>> =20
>>>
>>lo que estoy usando
>> =20
>>
>>>con composite queries.=20
>>>Lo que se necesita que es esto funcione tambien en
>>> =20
>>>
>>objetos no-beans.=20
>> =20
>>
>>>Deberiamos pensar en un lenguaje similar al
>>> =20
>>>
>>"documento.pais.nombre" que
>> =20
>>
>>>sea sencillo
>>>de usar y que pueda expresar como llegar a una
>>> =20
>>>
>>propiedad de un objeto
>> =20
>>
>>>interno.
>>>
>>>La propiedad puede ser un atributo o un metodo.=20
>>>
>>>Como regla general: todo lo que pueda inferir es
>>> =20
>>>
>>mejor, si no se puede
>> =20
>>
>>>inferir o toma un matiz "dificil de que
>>>alguien entienda como funciona" mejor que no
>>> =20
>>>
>>infiera. Por ejemplo, se
>> =20
>>
>>>puede inferir si algo es metodo o atributo.
>>>
>>>Creo que esto esta bueno para desarrollar entre
>>> =20
>>>
>>una o dos personas.=20
>> =20
>>
>>>El mecanismo seria ir tirando las ideas ANTES de
>>> =20
>>>
>>codificar.
>> =20
>>
>>>SaludOBs
>>>
>>> =20
>>>
>>
>>
>> =20
>>
>-------------------------------------------------------
> =20
>
>>This SF.net email is sponsored by: IBM Linux
>>Tutorials.
>>Become an expert in LINUX or just sharpen your
>>skills. Sign up for IBM's
>>Free Linux Tutorials. Learn everything from the
>>bash shell to sys admin.
>>Click now!
>>
>> =20
>>
>http://ads.osdn.com/?ad_id=3D1278&alloc_id=3D3371&op=3Dclick
> =20
>
>>_______________________________________________
>>Objectbase-devel mailing list
>>Obj...@li...
>>
>> =20
>>
>https://lists.sourceforge.net/lists/listinfo/objectbase-devel
>
>
>__________________________________
>Do you Yahoo!?
>New Yahoo! Photos - easier uploading and sharing.
>http://photos.yahoo.com/
>
>
>-------------------------------------------------------
>This SF.net email is sponsored by: IBM Linux Tutorials.
>Become an expert in LINUX or just sharpen your skills. Sign up for IBM'=
s
>Free Linux Tutorials. Learn everything from the bash shell to sys admin.
>Click now! http://ads.osdn.com/?ad_id=3D1278&alloc_id=3D3371&op=3Dclick
>_______________________________________________
>Objectbase-devel mailing list
>Obj...@li...
>https://lists.sourceforge.net/lists/listinfo/objectbase-devel
>
> =20
>
|