![]() |
Jerarquia de clases Hola. Llevo un tiempo programando unas clases y como todo empezo por aprender, pues ya han llegado a un punto donde tengo que tomar unas reglas para que no sea un caos. El caso es que tengo la siguiente jerarquía : - Clase SYSTEM (envia emails, genera claves y poco mas) - Clase HTML hereda de SYSTEM (para escribir paginas HTML) - Clase MYSQL hereda de HTML (para todo el tema de MySQL) - Clase BROWSER hereda de MYSQL ( es un browser de mantenimiento de tablas) El tema es que con el siguiente codigo : Código PHP: Una captura: http://sxxl.es/imagen.png Mi pregunta, ¿Es correcto lo que hago, o debo crear una clase que use instancias de las otras ? No se si me he explicado bien. Espero opiniones Un saludo. |
Re: Jerarquia de clases No es lo mejor heredar todas las clases de una base, siempre busca que tus clases sean lo mas autonomas posible, y solo hereda las clases que realmente tengas que heredar. Saludos. |
Re: Jerarquia de clases El error que estás cometiendo es hacer herencia por el simple reuso de código, cuando la herencia es algo más que eso. Por regla debe haber una relación de parentesco entre las clases... por ejemplo, aunque parezca que te sirve, una clase Perro no puede heredar de una clase Persona. Busca sobre "el principio de liskov" para ver si te aclara un poco más el panorama. Otra sugerencia, usa estándares de codificación, no inventes los tuyos. Busca en Zend.com que tienen una presentación que describen cual usan ellos internamente. |
Re: Jerarquia de clases Gracias a los 2 por vuestros consejos. A GatorV, tengo que "matarlo" :-) , ya que lei su blog y el cerebro me empezo a estallar diciendo "que haces prehistorico", asi que de entrada veia MUCHOS inconvenientes en las 3 capas (mas aun con mi sistema que me hago una intranet en una mañana), pero luego pensado lo vi del todo claro, los problemas y soluciones que he adoptado no son nada elegantes/eficientes ya que llegado el punto en el que intentar "crecer" en prestaciones me suponia un suplicio. Asi que tire a hojear la documentacion de los frameworks que hay en la seccion del foro y como soy muy burrro y me gusta hacerlo todo yo solito, me he decido (despues de varias horas) por el Zend Framework, ya que me permite hacer las cosas a mi manera. A enriqueplace, darle la razon al 100%, mi sistema esta creado como prueba y ha ido creciendo a base de ratos que se me ocurria ponerle tal o cual cosa y claro es pura pereza de empezar de 0, asi que sacrifique todo por la reutilizacion del codigo. Sobre la codificacion, pues yo empeze con DBase III, despues Clipper, CA Visual Objects, Delphi, ASP y por ultimo PHP, asi que suelo llamar a las funciones en español y usar la "notacion hungara" en las variables (es que soy muy viejo..jejeje). Despues de lo visto hoy, pues esta claro, a estudiar el Zend Frameworks y a cojer mi entorno UML ( Un Monton de hojas y un Lapiz ) :-) y rediseñar como es debido mis clases. Como pregunta, usais Diccionario de Datos en los proyectos? osea, tener la informacion de la base de datos en tablas y luego usarlas en las clases? Es que necesito MAS informacion, estoy sediento de ella :-) Un saludo y gracias de nuevo |
Re: Jerarquia de clases A que te refieres con ¿Diccionario de Datos?, no es necesario en todos tus proyectos usar una base de datos, bien puedes usar algún otro medio persistente. Saludos. |
Re: Jerarquia de clases GatorV, tienes toda la razon, pero claro he estado tirando de mi metodologia de los tiempos Clipper, he visto que con http://framework.zend.com/manual/en/...pters.xml.html no es necesario guardar la logica de mis clases de la base de datos en ella, sino usando ficheros externos. Me estoy planteando crear un blog donde ir poniendo mis avances para que la gente como yo tenga un sitio donde encontrar y compartir ideas, ya me pasare por el tuyo para darte "caña" :-) con mis preguntas. Un saludo. |
Re: Jerarquia de clases Para enriqueplace , en tu blog http://phpsenior.blogspot.com/2007/1...ncipio-de.html con el ejemplo del becario me has aclarado alguna dudillas que tenia en la estructura del nuevo sistema que estoy desarrollando. Gracias Un saludo. |
| La zona horaria es GMT -6. Ahora son las 00:21. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.