370 Stimmen

Schnittstellennamen in Java

Die meisten OO-Sprachen präfixieren ihre Schnittstellennamen mit einem großen I, warum macht Java das nicht? Was war der Grund, diese Konvention nicht zu befolgen?

Um zu verdeutlichen, was ich meine: Wenn ich eine Benutzerschnittstelle und eine Benutzerimplementierung haben möchte, hätte ich in Java zwei Möglichkeiten:

  1. Klasse = Benutzer, Schnittstelle = BenutzerSchnittstelle
  2. Klasse = BenutzerImpl, Schnittstelle = Benutzer

Während in den meisten Sprachen:

Klasse = Benutzer, Schnittstelle = IBenutzer

Jetzt könnte man argumentieren, dass man immer einen aussagekräftigeren Namen für die Benutzerimplementierung wählen könnte und das Problem verschwindet, aber Java drängt auf einen POJO-Ansatz und die meisten IOC-Container verwenden umfangreich DynamicProxies. Diese beiden Dinge zusammen bedeuten, dass Sie viele Schnittstellen mit einer einzigen POJO-Implementierung haben werden.

Also, meine Frage kommt letztlich darauf hinaus: "Ist es sinnvoll, der breiteren Schnittstellennamenskonvention zu folgen, insbesondere angesichts der Richtung, in die Java-Frameworks zu gehen scheinen?"

70 Stimmen

"Wo in den meisten Sprachen"? Welche Sprachen außer den .Net-Sprachen?

0 Stimmen

Nicht nur die .NET-Sprachen; C++ ist eine verwendbare .NET-Sprache und hat nicht per se Schnittstellen (abstrakte Basisklassen können mit etwas Implementierung geliefert werden). Kommt diese Frage letztendlich darauf an, "Warum ist Java nicht wie C#?"?

0 Stimmen

Nein, die Frage basiert auf Java, aber es handelt sich wirklich um eine Frage zu Namenskonventionen für Schnittstellen und warum einige Sprachen sich entscheiden, Dinge auf bestimmte Weisen zu tun.

0voto

David Thornley Punkte 55244

Ist dies in irgendeinem wirklichen Sinn eine breitere Namenskonvention? Ich bin eher auf der C++-Seite und kenne mich mit Java und seinen Nachfolgern nicht wirklich aus. Wie viele Sprachgemeinschaften verwenden die I-Konvention?

Wenn Sie hier eine sprachunabhängige Standard-Namenskonvention haben, verwenden Sie diese. Andernfalls verwenden Sie die konventionelle Namensgebung der Sprache.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X