Ver Mensaje Individual
  #16 (permalink)  
Antiguo 29/10/2008, 07:16
venkman
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Duda sobre teoria de clases

Cita:
Iniciado por Keysher Ver Mensaje
Pero si el objeto "Rueda" sólo es usable por "Coche", ¿qué sentido tiene usar un tercero para crear la Rueda e instanciarla al Coche? Llegamos a un punto en que no interesa que la "Rueda" se pueda usar fuera del "Coche".
Sí, sí, una Rueda siempre se usará con un Coche. Pero una determinada Rueda puede usarse con distintos Coches y un determinado Coche puede utilizar diferentes Ruedas.


Lo que estás haciendo es que si instancias un cocheX = new Coche() y un cocheY = new Coche() ambos llevan el mismo tipo de Ruedas obligatoriamente. Y eso no es bueno, ni práctico. En general lo que querrás es que cocheX = FactoríaDeCoches.crearCoche("sport") y cocheY = FactoríaDeCoches.crearCoche("confort"). Y sea la Factoría de Coches la que sabe que para la configuración "sport" debe crear un Coche, 4 RuedasAnchas y 4 LlantasDeAleación y montarlo todo y devolverte todo montado. Y que para la configuración "confort" debe crear un Coche y 4 RuedasNormales y 4 LlantasDeCuboDeLata y montarlo todo y devolverte el conjunto.

Lo importante es:
- Que el Coche es exactamente el mismo en ambos casos.
- Que un Coche puede llevar diferentes tipos de Ruedas.
- Que sólo 1 clase (FactoríaDeCoches) se encarga de montar Coches.
- Que sí, cuando pides un Coche (a la Factoría) ya te lo da con todo montado. No tienes que encargarte tú de ponerle las Ruedas.
- Que en un momento dado, si es necesario, puedes realmente crear Ruedas independientemente de Coches.
- Más importante aún, que puedes definir diversos Coches y Ruedas de forma independiente.



Lo mismo es aplicable a Páginas y Estilos.