En guide til indre grænseflader i Java

1. Introduktion

I denne korte vejledning ser vi på indre grænseflader i Java. De bruges hovedsageligt til:

  • løsning af navnesporingsproblemet, når grænsefladen har et fælles navn
  • stigende indkapsling
  • øge læsbarheden ved at gruppere relaterede grænseflader ét sted

Et velkendt eksempel er Indgang interface, der er erklæret inde i Kort interface. Defineret på denne måde er grænsefladen ikke i globalt omfang, og det refereres til som Kort. Indgang adskiller det fra andre Indgang grænseflader og gøre dets forhold til Kort indlysende.

2. Indvendige grænseflader

Per definition forekommer erklæring om en indre grænseflade i kroppen af ​​en anden grænseflade eller klasse.

De er implicit offentlige og statiske såvel som deres felter, når de erklæres i en anden grænseflade (svarende til feltdeklarationer i grænseflader på øverste niveau), og de kan implementeres hvor som helst:

offentlig grænseflade-kunde {// ... grænsefladeliste {// ...}}

Indvendige grænseflader, der er erklæret inden for en anden klasse, er også statiske, men de kan have adgangsspecifikatorer, der kan begrænse, hvor de kan implementeres:

offentlig klasse Kunde {offentlig grænseflade Liste {ugyldig tilføjelse (Kundekunde); String getCustomerNames (); } // ...}

I eksemplet ovenfor har vi en Liste grænseflade, der tjener til at erklære nogle operationer på listen over Kunder som at tilføje nye, få en Snor repræsentation og så videre.

Liste er et udbredt navn, og for at arbejde med andre biblioteker, der definerer denne grænseflade, er vi nødt til at adskille vores erklæring, dvs. navneområde det.

Det er her, vi bruger en indre grænseflade, hvis vi ikke ønsker at gå med et nyt navn som Kundeliste.

Vi holdt også to relaterede grænseflader sammen, hvilket forbedrer indkapsling.

Endelig kan vi fortsætte med en implementering af det:

offentlig klasse CommaSeparatedCustomers implementerer Customer.List {// ...}

3. Konklusion

Vi kiggede hurtigt på indre grænseflader i Java.

Som altid kan kodeeksempler findes på GitHub.


$config[zx-auto] not found$config[zx-overlay] not found