Cita:
Iniciado por LordMOY Hola hhs. Antes que nada, al igual que a alvaro_trewhela, agradecer tu ayuda y tiempo.
Ya leí sobre los principios GRASP, por lo pronto de la Wikipedia, por que desconocía el termino (es lo que pasa cuando aprendes a programar sin universidad), voy a buscar el libro que mencionas para comprarlo en la primera oportunidad.
En realidad la universidad solo te da algunas bases la mayor parte lo aprendes en el camino, así que no te preocupes si no tienes estudios formales.
Cita: La idea final es/era tener algo como:
Código PHP:
$Auto1 = new Auto();
$Auto2 = new Auto();
....
Y que cada "Auto" tenga todos sus componentes, "Tanque, Motor, etc.."
Probablemente lo pudiese resolver con solo una clase, la clase Auto, y ahi toooodas las funciones y atributos.
Pensé en utilizar varias clases para tener "orden" pero veo que lo plantee mal desde un inicio y de ahi todos los problemas. Pero sus codigos y consejos ya me dejan mas en claro cual es la forma correcta de hacerlo.
Lo facil seria hacer una sola clase como comentas, pero en realidad debes de crear un modelo de objetos que resuelva el problema que tienes, si vas a tener autos con diferentes motores , tipo de tanques, etc. entonces tienes que buscar la forma de que tus objetos puedan hacer eso y es probable que no lo resuelvas con una sola clase. Al punto al que voy es que tu tienes que resolver el problema de acuerdo a los requisitos de tu proyecto si en esos requisitos una sola clase resuelve el problema que bien por tí, pero si no es así, entonces vas a tener que crear todo lo que se requiera para resolver esos requisitos.
Cita: Una ultima pregunta, veo que en los constructores de las classes utilizas algo como:
Código PHP:
__constructor(Tank $tank)
Nunca lo habia usado en PHP, es igual que en C? para forzar que la variable enviada sea una instancia de Tank o tiene otra funcion?
Si, es para forzar que los métodos o funciones solo acepten ciertos tipos en sus argumento. Puedes ver mas en el manual:
http://php.net/manual/es/functions.a...pe-declaration