Teniendo en cuenta que PHP5 es una realidad que nos permite pasar a desarrollos más elaborados, con una Orientación a Objetos más robusta, es fundamental saber que existen "principios de diseño" que nos marcan el rumbo.
Aquí mis apuntes sobre estos temas (que en un futuro espero extenderme en detalle):
Principios de Diseño Orientado a Objetos
- SRP - Single Responsibility Principle (Principio de Responsabilidad Única)
- OCP - Open/Closed Principle (Principio Abierto / Cerrado)
- LSP - Liskov Substitution Principle (Principio de Sustitución de Liskov)
- DIP - Dependency Inversion Principle (Principio de Inversión de Dependencias)
- ISP - Interface Segregation Principle (Principio de Segregación de Interfaces)
http://en.wikipedia.org/wiki
http://en.wikipedia.org/wiki
http://en.wikipedia.org/wiki
1. SRP - Single Responsibility Principle (Principio de Responsabilidad Única)
Enunciado formal: "Una clase debería tener solo una razón para cambiar"
2. OCP - Open/Closed Principle (Principio Abierto / Cerrado)
Enunciado formal: "Entidades de Software (clases, módulos, funciones, etc) deberían ser abiertas para la extensión y cerradas para la modificación"
3. LSP - Liskov Substitution Principle (Principio de Sustitución de Liskov)
Enunciado formal: "Subtipos deben ser sustituibles por sus clases bases"
4. DIP - Dependency Inversion Principle (Principio de Inversión de Dependencias)
Enunciado formal: "los clientes tienden a ser propietarios de las interfaces y aquellos que ofrecen los servicios las implementan"
5. ISP - Interface Segregation Principle (Principio de Segregación de Interfaces)
Enunciado formal: "Clientes no deberían depender de métodos que no utilizan"
4 comentarios:
Interesante recopilación...
Yo añadiría La ley de Deméter (habla sólo con tus amigos inmediatos) para mantener el diseño limpio y ordenado.
Aunque probablemente es un ley subyacente en las que has listado, conviene tenerla en mente, por si acaso...
Saludos
P.D. Por si le interesa a alguien, hace bastante tiempo comenté está ley en Accesores, diseño orientado a objetos y la ley de Demeter
Estimado Mig21:
Sí, muchas gracias, me faltan algunas más, pero Deméter debería estar seguro ;-)
Estoy terminando de ordenar mis apuntes (para poder ir agregando material a un libro que estoy trabajando), por lo que iré actualizando el blog con ejemplos que tengo en mis cuadernos ;-)
PD: estuve viendo tu blog y la verdad que me gustó mucho (ya recorrí hasta el año pasado) y veo que voy a tomarme un tiempo para leer tus buenos posts ;-)
Quisiera hacer mi contribución a esta entrada con un enlace que encontré hace tiempo atrás en la página de Robert C. Martin.
Es el siguiente: http://www.objectmentor.com/resources/articles/Principles_and_Patterns.pdf
Espero lo disfruten, son unos cuantos principios de diseño, con métricas incluidas, y algo sobre los patrones GOF.
Saludos.
Estimado IsildurMaC:
Muchas gracias por la información, ya la estoy leyendo ;-)
Publicar un comentario