jueves, 31 de octubre de 2013

Dependency Inversion Principle

Dependency Inversion Principle (DIP)
"Depender de abstracciones. No depender de concreciones."

Este post pertenece a la serie Principios SOLID.

Hay diferentes formas de definir el DIP:

  • Las abstracciones no deben depender de los detalles.
  • El código debe depender de cosas que estén en su mismo nivel de abstracción o superior
  • Las reglas de alto nivel no deben depender de los detalles de bajo nivel
  • etc.
Todas ellas se basan en la idea de crear dependencias hacia niveles de abstracción superior.

martes, 29 de octubre de 2013

The Interface Segregation Principle

The Interface Segregation Principle (ISP)
"Un cliente no debe estar obligado a depender de interfaces que no usa"

Este post pertenece a la serie Principios SOLID.

Primero me gustaría aclarar que aunque el nombre de este principio usa la palabra "Interface" se refiere a una interfaz en un sentido amplio de la palabra como cualquier estructura de código que define una parte pública de la clase que la implementa.

lunes, 28 de octubre de 2013

The Liskov's Substitution Principle (LSP)

The Liskov's Substitution Principle (LSP)

"Las subclases deben poder sustituirse por sus clases base"

Este post pertenece a la serie Principios SOLID.

En el post "The Open/Close Principle (OCP)" hablamos de que el OCP es la base para crear código mantenible y reutilizable. Además vimos que el concepto clave del OCP era al abstracción. Uno de los principales mecanismos para soportar abstracción en los lenguajes de tipos estáticos como C# es la herencia.

jueves, 24 de octubre de 2013

The Single Responsibility Principle (Principio de responsabilidad única)

Single Responsibility Principle (SRP)

"Una clase sólo debe tener una responsabilidad. O lo que es lo mismo, una clase debe tener una y sólo una razón para cambiar". (Robert C. Martin)

Este post pertenece a la serie Principios SOLID.

Realmente este parece un principio simple, sin embargo no hay que dejarse engañar por las apariencias. A lo largo de este post veremos es necesario conocer en profundidad todas las repercusiones de este principio para poder aplicarlo correctamente.

lunes, 21 de octubre de 2013

The Open/Close Principle (Principio Abierto/Cerrado)

The Open/Close Principle (OCP)

"Un módulo debe estar abierto para la extensión pero cerrado para la modificación."

Este post pertenece a la serie Principios SOLID.

De todos los principios de diseño este es quizá el más importante. Quiere decir que debemos diseñar nuestros módulos de forma que puedan extenderse sin tener que modificarlos. En otras palabras, tenemos que poder cambiar lo que el módulo hace sin cambiar el código fuente del módulo.

Introducción a los principios de diseño

¿Que son los principios de diseño de software?

Este post pertenece a la serie Principios SOLID.

Los principios de diseño de software son una serie de directrices que nos ayudan a crear buenos diseños de software.