Ver Mensaje Individual
  #20 (permalink)  
Antiguo 29/10/2008, 10:21
Keysher
 
Fecha de Ingreso: noviembre-2002
Mensajes: 1.341
Antigüedad: 21 años, 6 meses
Puntos: 17
Respuesta: Duda sobre teoria de clases

Sí, es lo que me plantearon al principio y de hecho es lo que había pensado al comprobar que no había clases privadas. Y es la opción que he mantenido, quizás no lo haya expresado bien.

De todos modos, aunque la clase Coche no cree las demás, cuando cree una Rueda, o lo que sea, tendré que tener un método en Coche para atar la Rueda al Coche, así que al final estaría haciendo lo mismo.

Vamos, que haría:

Creo Coche
Creo Rueda
Asigno Rueda a Coche

Para mi es más ordenado y simple:
Creo Coche
Llamo a un método de Coche que me crea un nuevo objeto de Rueda y la agrega al Coche.

Evito que haya Ruedas sueltas, quizás pierda flexibilidad, pero en la lógica del programa no se va a dar el caso en el que una Rueda no tenga coche, y si quiero hacer una copia de una Rueda de un coche para meterla en otro Coche, puedo llamar a un método de Coche que me devuelva esa Rueda.

Es cierto que Coche empezaría a ser una clase muy grande, encargada de hacer bastantes cosas, pero en mi caso en particular lo veo más útil así.

De hecho es parecido a lo que me planteabas antes con la Factoría de Coches, que se encarga de ensamblar todos los objetos. Pero mi factoría sería la clase HTML (o como se llame) que además de ensamblar se encargaría de crear objetos, y luego armar todo el código, por ejemplo.

Estoy de acuerdo en que hay que dar a cada clase un objetivo, pero a veces el exceso de simplicidad tampoco es bueno.

Ahora mismo, para mi la opción más útil sería la siguiente:

Clase HTML con un método que crea clase Estilo
Método en HTML para agregar un objeto de la clase Estilo a ese opjeto de la clase HTML

La segunda opción preferiría ahorrarmerla, por coherencia, no sirve de nada tener esa clase suelta, así que preferiría que no se crease ella sóla sin estar atada a la otra clase.

Además (y esto ya es duda de código), si creo objeto Estilo, ¿cómo lo instanciaria en la clase HTML? ¿Haciendo una copia suya en un array dentro de HTML? (se duplica la clase, no viable) ¿Agregando simplemente el nombre del objeto? (reconozco que no lo he investigado).