Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Visibilidad de objetos de una clase
Message
Information générale
Forum:
Visual FoxPro
Catégorie:
Programmation Orientée Object
Divers
Thread ID:
01125702
Message ID:
01127521
Vues:
13
Hola, Hugo.

>>¿Porqué no usar propiedades públicas con accesores? ¿Tus métodos Set y Get no son públicos a veces? Para mi es exactamente lo mismo a nivel de visibilidad, pero no semánticamente. Cambiar o leer un campo debería ser sólo eso, sin tener que disparar un comportamiento (método).

>Asi es como lo veo yo, si bien declaras una propiedad cómo Pública, al momento que le pones accessors/setters deja de serlo, ya que de alguna manera le estas (o mejor dicho podrías estar) limitando su "Visibilidad" indirectamente, por ejemplo negando un cambio por falta de derechos, o cualquier cosa.
>
>Yo creo que aquí radica nuestra diferencia de opinión, ya que es justo lo que yo veo al revés, vos decís: "Cambiar o leer un campo debería ser sólo eso, sin tener que disparar un comportamiento (método)", pero sin embargo, los _assign y _access hacen justamente eso, pero... a escondidas, yo prefiero la honestidad de los get/set que de entrada vienen y te dicen, si, esta propiedad es mia, mia y solamente mia, pero voy a ser bueno por esta vez y te voy a dejar accederla/cambiarla si me lo pides de buena onda; por otro lado usando _assign y _access me dan la impresion que dicen "Aqui tienes esta propiedad, puedes usarla libremente, es tuya", y en cuanto la tratas de usar, los muy traicioneros empiezan a hablar mal de ti a tus espaldas.

Para mi no debería haber diferencia alguna. En VFP no hay control de tipos, pero veamos algo más genérico. Si escribimos:
   int edad;
   edad = 10.88;
obtenemos una excepción. En VFP, si hacemos:
nacimiento = date( 1967, 66, 42 )
también tenemos una excepción. En el ejemplo el problema se ve literalmente, pero ¿qué pasaría si los argumentos de día y mes son variables? Para mi es lo mismo si hacemos:
nacimiento = date( 2007, 1, 1 )
y recibimos un error porque el accesor no nos permite fechas mayores a hoy.

Cuando menciono la semántica en el caso de los accesores automáticos, me refiero a que la asignación de un valor para mi debería ser expresada como:
entidad.campo = valor
Mientras que el formato:
entidad.mensaje( argumento )
para mi implica disparar un comportamiento. En el primer caso, si algo sucede, no es mi problema. Es encapsulamiento puro.


>>Como siempre, es un placer discutir contigo.
>
>Ah, a mi no me gusta para nada discutir contigo, llevo las de perder!

Para nada. Tus argumentos son buenos. No todos los días puedo discutir estas cosas que son, en todo caso, lo que hacen al corazón de nuestra actividad. Siempre sirve volver a pensar en ello.

Un abrazo,
Précédent
Répondre
Fil
Voir

Click here to load this message in the networking platform