Design-Entscheidungen: Warum und Wann ein interface private?
Private Schnittstellen je in design-Entscheidungen ? Wenn ja, was sind die Gründe, und wenn Sie wissen, die Notwendigkeit für ein eigenes interface?
wenn die Schnittstelle ist über etwas, das sollte sein, abstrahiert von allen code, der nicht in einem bestimmten Paket?
Eine Schnittstelle kann nur privat sein, wenn es eine verschachtelte Schnittstelle. Eine toplevel-Klasse oder ein interface kann entweder public oder package-private.
Eine Schnittstelle kann nur privat sein, wenn es eine verschachtelte Schnittstelle. Eine toplevel-Klasse oder ein interface kann entweder public oder package-private.
InformationsquelleAutor Jon | 2011-01-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einen top-level-Schnittstelle kann nicht privat sein. Es kann nur
public
oder Paket zugreifen. Aus der Java Language Specification, Abschnitt 9.1.1: "Interface-Modifizierer":Einen verschachtelte Schnittstelle werden kann
private
wenn Sie und Ihre Unterklassen, wenn überhaupt, eine detail seiner top-level-Klasse.Beispielsweise die verschachtelte Schnittstelle
CLibrary
unten verwendet wird als Implementierungs-detail an der top-level-Klasse. Es ist rein verwendet, um zu definieren, eine API für JNA, übermittelt durch die SchnittstelleClass
.Als ein weiteres Beispiel, das private interface definiert eine API verwendet, die von privaten verschachtelte Klassen, die das implementieren benutzerdefinierter Formatierung Symbole.
Danke. Es ist ein sehr Vereinfachtes Beispiel von einigen real-world-code.
vergessen Sie nicht, mit java 8 müssen Sie diese deklarieren, komplexe funktionale Schnittstellen, die ohne littering-namespace
InformationsquelleAutor Andy Thomas
IMHO kann Man nicht sinnvoll machen, ein interface private.
Allerdings habe ich oft zwei Schnittstellen, eine für den öffentlichen Gebrauch und eine für den internen Gebrauch. Die interne Nutzung der Schnittstelle, die ich machen Paket lokale, wenn möglich, z.B.
Den internen Gebrauch Methoden aussetzen Methoden, die ich nicht wollen, dass andere Entwickler zu verwenden und/oder ich möchte in der Lage sein leicht ändern. Den Grund habe ich das interface überhaupt ist, dass ich mehrere Implementierungen, die ich verwenden möchten, die intern über eine Schnittstelle.
Ich oft schreiben, Bibliotheken oder frameworks verwendet, die von anderen Entwicklern. Ich will, dass die Schnittstellen so einfach wie möglich, so dass jede Methoden kann ich verstecken ich tun, insb. wenn Sie nicht verwendet werden sollen, von anderen Entwicklern.
private Schnittstellen sind normal, Sie werden zum Beispiel verwendet, um zu erklären, Funktion von Schnittstellen...
InformationsquelleAutor Peter Lawrey
Er hat sein Paket geschützt, wenn die Schnittstelle, wenn für den internen Gebrauch.
Im Allgemeinen, wenn die Schnittstelle noch nicht alle Zinsen, die es außerhalb der ambit ist es ein gutes api-design-Entscheidung um es zu verbergen, weil es weniger Komplexität für den Nutzer die Schnittstelle und erlaubt Ihnen auch, überarbeiten Sie es leichter, denn wenn die Schnittstelle ist öffentlich und in der API, die Sie den Verlust der Freiheit, es zu ändern.
InformationsquelleAutor lujop