Foros del Web » Programación para mayores de 30 ;) » Java »

que significa: 'programar contra interfaces, no contra implementacion'

Estas en el tema de que significa: 'programar contra interfaces, no contra implementacion' en el foro de Java en Foros del Web. Quería saber si alguien me podría explicar el significado de esta frase, 'Programe contra interfaces, no contra implementaciones' ?...
  #1 (permalink)  
Antiguo 14/02/2010, 15:11
 
Fecha de Ingreso: marzo-2007
Mensajes: 302
Antigüedad: 17 años, 1 mes
Puntos: 2
Pregunta que significa: 'programar contra interfaces, no contra implementacion'

Quería saber si alguien me podría explicar el significado de esta frase, 'Programe contra interfaces, no contra implementaciones' ?
  #2 (permalink)  
Antiguo 14/02/2010, 23:22
 
Fecha de Ingreso: enero-2008
Mensajes: 197
Antigüedad: 16 años, 3 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!

Etiquetas: contra, implementacion, programación
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:47.