Ver Mensaje Individual
  #10 (permalink)  
Antiguo 06/08/2014, 09:48
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años
Puntos: 320
Respuesta: Esta forma de programar es correcta

Cita:
realmente que interesante explicación estoy analizando punto por punto de lo que dices, pero porque en java
en el enlace que esta en esta pagina hay gente que si lo hace, cual es el fin, porque lo hacen si esta mal.
es decir, porque instaciar adentro de una clase o la pregunta seria, como ocupar esto de instanciar adentro de una clase
para que esto sea valido
1) Java no es PHP. Java posee herramientas y características restrictivas propias de un lenguaje tipado, el programador Java piensa diferente del programador PHP, conceptos que en Java son vitales como el de getter y setter, en PHP son triviales(existe __get y __set), no deterministas (un objeto puede adquirir o perder propiedades dinamicamente) y permisivos (si intentas hacer uso de una propiedad privada funcionara igual que si fuera publica, solo emitira un pequeño warning que puede ser suprimido).
En Java un objeto es un Objeto, un array es un Array, un String es un String y un numero es un numero, en PHP un Objeto puede comportarse como un array, un Array puede comportrse como un objeto, los numeros y string pueden comportarse como objetos o arrays y un objeto o un array pueden comportarse como string o numeros. Muchas cosas que en java soy de uso cotidiano, no existen en php, o existen de forma mucho mas flexible, por ejemplo en php no existe la sobrecarga tipada como en java aunque se puede emular bastante bien, debes aprovechar esta flexibilidad del lenguaje siempre que sea posible

Son pocos los conceptos que se pueden portar de Java a PHP, y son menos aun los que se deben implementar de igual forma.

Respondiendo a tu pregunta, no esta mal que lo hagan asi, y tampoco esta bien, depende del contexto.

En respuestas anteriores te hablaron de acoplamiento y generalización, te dieron ejemplos y mencionaron patrones de diseño, esto esta muy bien, es la via correcta a caminar, pero, sin abusar.

No peques de perfeccionista, si vas a construir un tablero con casillas, asegurate de que sea suficientemente abstracto como para que te sirva para jugar al ajedrez, a las damas y al 3 en raya, para eso tendras que implementar algun patron como inyeccion de dependencias y factory, tal vez tambien quieras usar interfaces o traits(por lo explicdo en el punto 1, no soy partidario del uso de interfaces, pero hay pocos casos en los que son utiles en PHP) pero no quieras que te sirva tambien para jugar el Monopoly, a la oca o al pictograma.

Evita que las clases se acoplen, pero no mas de lo necesario, piensa siempre en la claridad del codigo y en la eficiencia, debes lograr el equilibrio entre ambos, y si para lograrlo las clases deben acoplarse, que lo hagan.
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios