¿Usais habitualmente patrones de diseño en vuestras aplicaciones?
La unica pagina que conocia sobre el tema:phppatterns no funciona desde hace un tiempo. ¿Sabeis de alguna pagina con ejemplos de patrones?
Saludos
| |||
Uso de Patrones de Diseño ¿Usais habitualmente patrones de diseño en vuestras aplicaciones? La unica pagina que conocia sobre el tema:phppatterns no funciona desde hace un tiempo. ¿Sabeis de alguna pagina con ejemplos de patrones? Saludos |
| |||
patrones de diseño El problema de phppatterns al menos para mi es que muestra los patrones en la versión 4, aunque es la más extendida y usada, donde realmente se puede ver la potencia aplicada de los patrones es en php5. ya hace un tiempo que hay un libro: "PHP 5 Objects, Patterns, and Practice." Aunque si estás buscando alguno en particular te puedo poner el codigo del patrón. |
| |||
Hola : Bueno, yo voy a dar mi consideracion. El uso de patrones de disenno es en realidad una metodologia de como realizar buenas practicas de programacion; no esta limitado nunca a ningun lenguaje en especifico. Esto no quiere decir que no existan libros o articulos hablando de patrones y su implementacion en PHP, pero insisto, que los patrones que existen son mas bien genericos y representan metodologias de como programar ( a grandes rasgos, no estoy definiendo que cosa es un patron de disenno claro esta ). Ahora, el uso de los patrones ( que existen muchisimos, he revisado mas de 40 patrones que son bastante utilizados ) en PHP depende del programador y si deberia ser bastante utilizado. Voy a poner un ejemplo, el patron Singleton y el uso de Factorys se utiliza bastante, aunque no sea demasiado beneficioso para el caso del PHP4 por su propio manejo de clases, pero si se utiliza y aporta mucha flexibilidad y claridad al codigo. Hay patrones de Acceso a Componentes de Datos ( DAC, similar al manejo que da .NET a este tema ) que al menos yo utilizo 100% de las veces que necesito interactuar con una DB y siempre me resulta muy util, como ademas le aporta flexibilidad, claridad entre otras al codigo, aqui envio un ejemplo: Factory & DAC : -> IDACNews [ Esto representa un tipo o interface en el modelo, como en PHP4 no existen tipos o interfaces es algo simblico pero la clase correspondiente presenta estos metodos como significado de implementacion del tipo IDACNews ] . create ( news ) . read ( news_id ) . get_all_news() . delete( news_id ) -> Similar para Users y Admins Código PHP: Espero que les haya sido util. Saludos
__________________ Alojamiento Web - Alojamiento web y Servidores dedicados. Servidores en USA y Londres. Hosting,PHP,Java,CSS,SEO BLOG - Web Hosting, Posicionamiento Web, Programacion en PHP, Java, CSS y mucho mas. |
| |||
Erich Gamma y compañia en su libro patrones de diseño ponen la siguiente definicion de Christopher Alenxander : "Cada patron de diseño describe un problema que ocurre una y otra vez en nuestro entorno, así como la solución a ese problema, de tal modo que se puede aplicar esta solucion un millon de veces, sin hacer lo mismo dos veces" Los patrones son soluciones a problemas comunes en el diseño de aplicaciones y es buena constumbre implementarlos en tus aplicaciones, ya qie te ahorran tiempo y mejoran tu aplicacion en varios aspectos que no mensionare pero que puedes consultar en la documentacion correspondiente y bueno como comenta Javier_enithost hay una gran variedad de patrones, y su concepcion es independiente del lenguaje de programacion asi que lo que te puedo recomendar es que busques articulos o algunos libros que hablen sobre el tema y que comprendas que problemas solucionan y como, cada patron de diseño para que puedas implementarlos no solo en php si no en cualquier lenguaje que soporte POO.
__________________ Saludos! Mty-NL.. |
| |||
Javier, muy buena la clase, ahora bien, yo no se bien sobre el patron factory, hay algun tipo de especificación sobre este patron y tu adaptaste ese mapa o esquema a esa clase?.En que se diferencia de otros? Como usas esas clases? Saludos y gracias! |
| |||
Hola : Bueno, el patron se llama Singleton y es para tener una sola instancia de una clase determinada; yo utilizo esto en la capa de datos de cada aplicacion que hago: 1. La clase DAC me permite encapsular la fuente de datos y el gestor de DB: . Puedo usar mysql o postgre o oracle, la que desee . Puedo obtener los datos de un gestor o propianmente de un webservice o de cualquier fuente 2. Defino un tipo por cada entidad de la capa de datos: . IDACUsers . IDACNews -> create -> delete -> get_all_news . IDACAdmin . xxxxx 3. Creo una clase que especifica un gestor determinado e implementa el tipo que deseo: . MySqlNews hereda de MySQLDAC e implementa IDACNews . PgSqlNews hereda de PgSQLDAC e implementa igualmente IDACNews eso me permite que yo reciba una instancia que tenga los metodos create, delete, get_all_news sin interesarme el gestor en que esta soportada. 4. Para tomar una instancia de ese tipo solo llamo al singleton: Código PHP: Saludos
__________________ Alojamiento Web - Alojamiento web y Servidores dedicados. Servidores en USA y Londres. Hosting,PHP,Java,CSS,SEO BLOG - Web Hosting, Posicionamiento Web, Programacion en PHP, Java, CSS y mucho mas. |
| |||
Algo importante, no usen patrones de disenio, ni fabricas abandonadas, ni nada raro para desarrollar un simple y miserable sitio web. Mantengan el buen sentido comun y en lo posible las cosas simples. |
| |||
En sintesis... Los design patterns hay que usarlos cuando: Se conoce con profundidad la teoria Se cae de maduro qeu se puede solucionar con un patron / ajustes mas, ajustes menos. Se justifica aplicarlo. Digamos que si para hacer un form2mail, hay que crear 5 clases..... no se justifica.Si no estan claros esos requisitos, mejor hacerlo de la manera tradicional. Saludos. Pablo.
__________________ La casa de Noktemplate. Zonaphp.com - Php en español. ¿Que esperas de NokTpl 2? Deja tu comentario. Blog Mas o menos asi . |