14/02/2010, 23:22
|
| | Fecha de Ingreso: enero-2008
Mensajes: 197
Antigüedad: 16 años, 10 meses Puntos: 10 | |
Respuesta: que significa: 'programar contra interfaces, no contra implementacion' Hola 'Usuaria' ;)
Significa así de sencillo que programes Interfaces en lugar de Clases... Ya sé no ayuda mucho... pero es fácil.
Mira, si tu programas puras Clases de Java haces que tu código se muy dependiente entre si porque para que corra una clase muy probablemente necesite de varias más lo que hace tu código rígido, difícil de sostener porque imagínate que alguien cambia un código que tu estás usando ocasionaría que tu programa truene jeje.
En cambio, si tu programas interfaces lo que haces es establecer contratos entre tus módulos, a ti no te interesa el cómo se hacen las cosas, a ti nada más te interesa saber el qué de las cosas.
Te pondré un ejemplo:
2 fabricantes de autos y una organización que establece los lineamientos de los autos.
La organización dice:
Cualquiera que quiera hacer un coche debe tener estas cualidades:
Avanzar
Retroceder
Vuelta a la Derecha
Vuelta a la Izquierda
La organización dice el Qué (Léase Interfaz) pero no te dice cómo, (el cómo es la implementación).
El fabricante A hace su auto que Avanza, Retrocede y demás. el fabricante hace la implementación del contrato a su manera.
El fabricante B también hace su auto con la implementación a su manera.
Los dos fabricantes A y B presentan al usuario final sus modelos pero no quiere decir que Los hayan fabricado igual, no sabemos cómo los hicieron, a nosotros nos interesa que un coche avance y retroceda solamente los USAMOS.
Lo que quiero decir es que, es mejor programar Interfaces porque en cualquier momento podemos cambiar la implementación sin afectar nuestro código.
Soy un poco malo explicando te recomiendo mejor que busques The Strategy Design Pattern jeje por cierto Spring es un excelente Framework que hace uso extensivo de este Patrón de diseño.
Saludos! |