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"