Su comprensión parece estar en lo cierto. Su compañero de trabajo simplemente pasó por su escritorio y tiene todas las últimas fotos de la fiesta de Navidad protagonizada por su jefe borracho cargado en su unidad de memoria. Su compañero de trabajo y usted no lo piensa dos veces acerca de cómo funciona esta unidad de disco, para usted es una caja negra, pero usted sabe que funciona debido a la interfaz USB .
No importa si se trata de una SanDisk o un titanio (ni siquiera seguro de que es una marca), el tamaño/el color no importa tampoco. De hecho, lo único que importa es que no está roto (legible) y que se conecta a USB.
Su memoria USB se rige por un contrato, se trata esencialmente de una interfaz. Uno puede asumir que cumple algunas funciones muy básicas:
- Se conecta al USB
se rige por el método de contrato CopyDataTo:
interfaz IUSB pública { vacío CopyDataTo (somepath cadena); // usado para copiar datos de la unidad de miniatura para ... }
se rige por el método de contrato CopyDataFrom:
pública Interfaz IUSB { CopyDataFrom vacío(); // utilizar para copiar datos desde el PC a la unidad miniatura }
bien quizás no esos métodos, pero la interfaz deIUSB es sólo un contrato que los vendedores miniatura de la unidad tienen que cumplir para garantizar la funcionalidad a través varias plataformas/vendedores. Así SanDisk hace que su dispositivo en miniatura por la interfaz:
public class SanDiskUSB : IUSB
{
//todo: define methods of the interface here
}
Ari, creo que ya tiene un conocimiento sólido (de lo que suena) acerca de cómo las interfaces de trabajo.
Esto no es una 'respuesta', pero dos motivaciones concretas para las interfaces (que pueden ayudar a su 'AHA' momento), y los que utilizo todos los días son la inyección de dependencias (el marco de la Unidad Microsoft es fantástico para este) y fábricas (y patrones de diseño en general). Consulte http://en.wikipedia.org/wiki/Dependency_injection y http://en.wikipedia.org/wiki/Factory_object – Joe
http://stackoverflow.com/questions/48605/why-do-most-java-system -architects-insiste-en-primera-codificación-en-una-interfaz – SwDevMan81