stringtranslate.com

Interfaz (programación orientada a objetos)

En la programación orientada a objetos , un tipo de interfaz o protocolo [a] es un tipo de datos que actúa como una abstracción de una clase . Describe un conjunto de firmas de métodos , cuyas implementaciones pueden ser proporcionadas por múltiples clases que de otro modo no están necesariamente relacionadas entre sí. [1] Se dice que una clase que proporciona los métodos enumerados en un protocolo adopta el protocolo [2] o implementa la interfaz. [1]

Si los objetos están completamente encapsulados , el protocolo es la única forma en que otros objetos pueden acceder a ellos. Por ejemplo, en Java , la Comparableinterfaz especifica un método compareTo()que las clases implementadoras deben implementar. Esto significa que un método de ordenación, por ejemplo, puede ordenar una colección de cualquier objeto de tipos que implementen la interfaz Comparable, sin tener que saber nada sobre la naturaleza interna de la clase (excepto que dos de estos objetos se pueden comparar por medio de compareTo()).

Algunos lenguajes de programación proporcionan soporte explícito para protocolos ( Ada , C# , D , Dart , Delphi , Go , Java , Logtalk , Object Pascal , Objective-C , OCaml , PHP , Racket , Seed7 , Swift , Python 3.8). En lenguajes que admiten herencia múltiple , como C++ , las interfaces se implementan como clases abstractas .

En lenguajes sin soporte explícito, los protocolos suelen seguir estando presentes como convenciones. Esto se conoce como tipado pato . Por ejemplo, en Python , cualquier clase puede implementar un __iter__método y usarse como una colección . [3]

Las clases de tipos en lenguajes como Haskell , o las firmas de módulos en ML y OCaml , se utilizan para muchas de las cosas para las que se utilizan los protocolos. [ aclaración necesaria ]

En Rust , las interfaces se denominan rasgos . [4]

Véase también

Notas

  1. ^ El uso de estos términos varía según el lenguaje de programación. Java y los lenguajes derivados de él tienden a utilizar "interfaz", mientras que "protocolo" es generalmente más popular en otros lugares.

Referencias

  1. ^ ab "Interfaces: definir el comportamiento de varios tipos". learn.microsoft.com . Consultado el 16 de noviembre de 2022 .
  2. ^ Miller, BJ (2015). Sams Teach Yourself Swift en 24 horas . Indianápolis, Indiana. pág. 263. ISBN 978-0-672-33724-6Cualquier tipo puede adoptar un protocolo para brindarle funcionalidad adicional para realizar un conjunto particular de tareas.{{cite book}}: Mantenimiento de CS1: falta la ubicación del editor ( enlace )
  3. ^ "Glosario — Documentación de Python 3.11.0". docs.python.org . Consultado el 16 de noviembre de 2022 .
  4. ^ "Rasgos: la referencia de Rust". Enero de 2024.