Ver Mensaje Individual
  #3  
Antiguo 25-03-2008
keyboy keyboy is offline
Miembro
 
Registrado: oct 2004
Posts: 367
Reputación: 20
keyboy Va por buen camino
Cita:
Empezado por dec Ver Mensaje
¿Por qué motivo no se ha hecho "privado" al "privado", valga la redundancia, que ha tenido que venir un "privado estricto"?
Porque afectarías muchísimo código ya hecho. Pero, además, cuando hay clases muy relacionadas, resulta muy engorroso que unas accedan a las otras a través únicamente de propiedades y métodos públicos. Toma en cuenta, por ejemplo, que cada acceso a una propiedad significa, la más de las veces, pasar por un método SetX que puede hacer varias cosas aparte de asignar un valor, y que no siempre son deseables en el uso "a bajo nivel", como lo es el acceso por clases relacionadas.

Otros lenguajes tienen otros mecanismos para el acceso a elementos privados de una clase. En C++ existe el concepto de clases 'amigas', por ejemplo. En delphi se hace la "amistad" al colocar las clases en una misma unidad.

Claro que se puede argumentar el por qué de esa necesidad, como en este texto que acabo de leer:

Cita:
Why should certain objects be given special access to the internals of
another class while other not-so-special objects don't get any? If
you've designed your classes correctly you shouldn't need friends at
all
.
El texto proviene de un foro de PHP, lenguaje en donde muchos acostumbran poner una sola clase por archivo, pero el caso es que la VCL está plagada de clases "amigas".

Yo más bien me preguntaría ¿cuál es la necesidad de agregar un atributo más restrictivo? Pero mejor me voy a leer el artículo del compañero para enterarme.

Bye
Responder Con Cita