2010-05-12 46 views
12

Estoy confundido acerca de cuál es la diferencia entre un protocolo y una interfaz? ¿Ambos parecen estar haciendo lo mismo?¿Cuál es la diferencia entre un protocolo y una interfaz en Objective-c?

¿Es como el resumen en C# en el que se le pide que lo implemente?

+1

posible duplicado de [Diferencias entre las interfaces Java y los protocolos Objective-C?] (Http://stackoverflow.com/questions/990360/differences-between-java-interfaces-and-objective-c-protocols) –

Respuesta

7

un protocolo en Objective-C es el mismo que el de una interfaz en Java, si eso es lo que quiere decir

+0

¿Es como resumen en C# en el que se le pide que lo implemente? – user333639

+0

yup, tipo de. tenga en cuenta que existen diferencias entre las clases abstractas y las interfaces en C#. Pero una interfaz en C# es lo mismo que una interfaz en Java – SirLenz0rlot

3

Objective-C: .

Java: interface.

De lo contrario, no hay ninguna diferencia.

8

En Objective C una interfaz es equivalente a una declaración de clase C++. Y un protocolo es equivalente a una interfaz Java.

Editar: En Objective C, la definición de clase se divide en dos componentes llamados interfaz e implementación, que le permite reducir los archivos de encabezado. Esto es similar a C++. Java no tiene un equivalente, porque implementa sus funciones de clase dentro de la definición de la clase. C# es similar a Java a este respecto.

0
In Java - you implement an Interface 
In Swift/Objective C - you conform to a Protocol 

"Program to an Interface, not an Implementation" 
- Design Patterns 1995 
0

Un protocolo es un grupo de propiedades y métodos relacionados que puede implementar cualquier clase. Son más flexibles que una interfaz de clase normal, ya que le permiten reutilizar una sola declaración de API en clases completamente independientes. Esto hace posible representar relaciones horizontales sobre una jerarquía de clases existente.

Una interfaz de clase declara los métodos y propiedades asociados con esa clase.

Un protocolo, por el contrario, se utiliza para declarar métodos y propiedades que son independientes de cualquier clase específica.

Cuestiones relacionadas