Los métodos AddObject y NewObject de los objetos son para agregar nuevos objetos (y sólo objetos) a objetos existentes.
En cambio las asignaciones con "=" o con AddProperty se realizan como asignaciones de propiedades, aunque las mismas puedan contener objetos.
No sé si hay un motivo teórico para esta distinción entre agregar como objeto o como propiedad, pero hay varios motivos prácticos, cada uno con sus pros y contras:
AGREGAR UN OBJETO A OTRO OBJETO
usando AddObject o NewObject
- Ventajas: - Permite que el objeto interior (contenido) pueda referirse al objeto exterior (padre) usando la sintaxis THIS.PARENT - Permite a varios objetos setear u obtener datos entre sí en cualquier dirección (hijo a padre, padre a hijo, hijo a hermano, etc.) - Los objetos agregados forma parte de una colección dentro del padre, que puede recorrerse fácilmente por programa.
- Desventajas: - Hay objetos que pueden dar problemas con esta forma de juntar objetos, por ejemplo los basados en SESSION, ya que el objeto agregado (hijo) estará en la sesión del objeto padre. - Aumenta el acoplamiento, el padre puede acceder a la funcionalidad del hijo y el hijo puede acceder a la funcionalidad del padre
usando AddProperty, "=" o STORE
- Ventajas: - Todos los objetos son compatibles con esta forma de agregación, incluyendo los basados en SESSION, ya que cada uno mantiene su sesión predeterminada - Disminuye el acoplamiento porque el objeto padre puede acceder al objeto hijo, pero el objeto hijo no puede acceder al objeto padre. Esto permite a que el objeto hijo sea funcionalmente independiente del objeto padre.
- Desventajas: - No permite que el objeto interior (contenido) pueda referirse al objeto exterior (padre) usando la sintaxis THIS.PARENT - Los objetos agregados no forman parte de ninguna colección dentro del padre, por lo que para recorrerlos hay que buscarlos primero.
Fernando D. Bozzo
No hay comentarios. :
Publicar un comentario
Los comentarios son moderados, por lo que pueden demorar varias horas para su publicación.