Domanda

Attualmente sto studiando il codice completo e la parola " interfaccia " continua a saltar fuori! Sto cercando di capire cosa sia un'interfaccia. Puoi definire il termine? Inoltre, ciò che costituisce effettivamente un'interfaccia di classe "quot"?

È stato utile?

Soluzione

Penso che un buon modo per definire un'interfaccia sia il seguente

  

Un'interfaccia è un contratto che specifica un insieme di metodi, campi e proprietà che saranno disponibili su qualsiasi oggetto di implementazione

L'implementazione effettiva da una lingua all'altra può avere piccole differenze divertenti ma il principio vale.

Ho considerato l'aggiunta di interfacce implementate all'elenco sopra ma l'ho lasciato fuori perché sembrava essere un po 'troppo specifico per la lingua. Penso che sia OK perché l'effetto finale è quasi lo stesso. Affrontare più interfacce è semplicemente aggiungere più metodi, campi e proprietà al contratto.

Altri suggerimenti

In generale, un'interfaccia è semplicemente "come appare la classe al resto del mondo".

Ad esempio, questa classe in Java:

class MyClass {
  private string data;
  private string Foo() {...}
  public void Bar(string s){...}
}

si potrebbe dire che abbia solo la funzione Bar nella sua interfaccia. Internamente ha pochi altri membri, ma sono privati, quindi non sono visibili al mondo esterno.

Più comunemente, le interfacce sono anche tipi specifici nella lingua, ad esempio di seguito, MyClass implementa l'interfaccia IMyClass:

interface IMyClass {
  public void Bar(string s);
}

class MyClass implements IMyClass {
  private string data;
  private string Foo() {...}
  public void Bar(string s){...}
}

L'interfaccia è ora espressa in codice, quindi ogni volta che è prevista una variabile di tipo IMyClass, è possibile utilizzare un oggetto di tipo MyClass, poiché implementa l'interfaccia corretta.

È la faccia esterna del mondo. Di solito l'insieme di metodi pubblici (membri) che espone.

Tecnicamente comunque sarebbero 2 cose diverse

Un'interfaccia sarebbe un contratto pubblico. per es.

interface ILogger
{
  void Log(String str);
}

Una classe dovrebbe quindi 'implementare' questa interfaccia, in un certo senso dicendo che fornisce questa funzionalità

class ConsoleLogger : ILogger
{
  public ConsoleLogger() { ... }
  public void Log(String str)
  {
    Console.WriteLine("Console Logger " + str);
  }
  // private stuff
}

Gli utenti di questo servizio / interfaccia non devono preoccuparsi di come viene implementato o chi lo sta implementando? A seconda dell'interfaccia, l'implementazione effettiva può essere cambiata a piacimento.

L'interfaccia di una classe è la sua "quotazione pubblica" che altre classi possono vedere. Separa l'implementazione della classe dal modo in cui interagisce con altre classi. In questo modo è possibile scambiare diverse implementazioni e altre classi non hanno bisogno di sapere nulla di ciò che c'è dietro l'interfaccia.

Un'interfaccia può includere sia i dati che i membri delle funzioni.

L'interfaccia è la definizione di un insieme di metodi che la classe può implementare. È usato principalmente per il polimorfismo dell'interfaccia.

Un'interfaccia è come una classe ma non del tutto. Ha tratti simili a quelli di una classe ma non è un'interfaccia. Un'interfaccia ha variabili e metodi ", proprio come la classe, ma i metodi dichiarati nell'interfaccia sono di default abstract (solo firma del metodo, nessun corpo)".

http://beginnersbook.com/2013/05/java-interface/

Le interfacce hanno due definizioni. Dipende dal contesto in cui viene utilizzato il termine interfaccia.

  1. Un'interfaccia di classi fa riferimento a tutti i metodi pubblici implementati di una classe.
  2. Un'interfaccia come tipo. vale a dire utilizzare l'interfaccia delle parole chiave per dichiarare un'interfaccia.

    interface Movable{ 
        moveStraight();
        moveLeft();
        moveRight();
        stop();
    }
    

    Quindi ora una classe, diciamo, Car può implementare l'interfaccia Movable. Questo è ciò che è noto come il contratto. Se la classe Car implementa l'interfaccia Movable, Car garantisce di fornire implementazioni per tutti i metodi dichiarati in Movables dichiarazione.

Per concludere, generalmente un'interfaccia viene indirizzata come un tipo (definizione 2) in un contesto di programmazione specifico della lingua. Troverai la prima definizione in meno occasioni di solito in un contesto teorico o progettuale.

Il classico esempio di vita reale di un'interfaccia sono i controlli di un'auto.

L'interruzione, il gas e la ruota sarebbero l'interfaccia. Il motore e altri aspetti meccanici sarebbero l'implementazione. Questi aspetti meccanici possono cambiare, non lo sapremmo perché la nostra interfaccia rimane la stessa.

Questo è il potere di un'interfaccia, nasconde i dettagli di implementazione in modo che possiamo lavorare su un livello più alto di astrazione. Possiamo usare direttamente la funzionalità dell'interfaccia di solito senza preoccuparci di come viene implementato il codice sottostante.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top