Ist es eine gute Idee, immer die Java Beans Namenskonventionen zu verwenden?

9

Ich habe es immer als sehr nützlich empfunden, die Java Beans Namenskonventionen einzuhalten: getX() , setX() , isX() , etc. Ich denke, die Java Bean Namenskonventionen bieten einige Hauptvorteile:

  1. Wenn Sie sich den Code ansehen, können Sie sofort den Zweck einer Methode bestimmen.
  2. Beim Durchsuchen der API-Dokumentation werden alle Methoden aufgrund der alphabetischen Reihenfolge der Java-Dokumentation gruppiert.
  3. Wenn Sie die Codevervollständigungsfunktion einer IDE verwenden, ist es einfach und intuitiv, die gesuchte Methode zu finden und zu finden. Dies liegt wiederum an der alphabetischen Reihenfolge der IDE.

Ich weiß, dass es viele Klassen gibt, die Teil der Java API sind, die nicht die Java Beans Namenskonventionen verwenden. Ein Beispiel wäre ArrayList , das Methoden wie size() hat.

Ich habe eigentlich zwei Hauptfragen:

  1. Ist es eine gute Idee, immer die Namenskonventionen von Java Beans zu verwenden? Wenn nicht, warum?
  2. Ich weiß, dass ArrayList geschrieben wurde, bevor Java Beans herauskam. Ist es üblich, dass Oracle die Namenskonventionen für Java Beans für alle (oder zumindest die meisten) neuen Inhalte verwendet?

Das Folgende ist eher, um die Leute zum Nachdenken zu bringen als eine Frage.

Wie ich oben gesagt habe, habe ich mich immer an die Java Bean Namenskonventionen gehalten. Ich denke, sie bieten eine Menge Vorteile in vielerlei Hinsicht. Ich denke, das größte Problem ist, dass ohne Java Beans viele Leute verwirrende Namenskonventionen verwenden.

Ich glaube persönlich , dass das Folgende immer eingehalten werden sollte, und ich bin gespannt, was die Leute darüber denken:

  1. Wenn der Methodenname ein Substantiv ist, wird erwartet, dass die Methode einen Wert zurückgibt.
  2. Wenn der Methodenname ein Verb ist, sollte die Methode immer etwas tun. Wenn die Methode einen Wert zurückgibt, sollte der zurückgegebene Wert mit der Aktion verknüpft sein, die ausgeführt wurde.
  3. Wenn der Methodenname ein Adjektiv ist, sollte der Name nicht allein verwendet werden. Zum Beispiel sollte big() isBig() sein.
  4. Substantive, die keine implizite Eigenschaft eines Objekts sind, sollten nicht allein verwendet werden.
    Zum Beispiel:
    size() ist eine geeignete Methode für ein House -Objekt, aber door() nicht. Der Grund dafür ist, dass size eine Erbeneigenschaft von house ist, die von der Natur entschieden wurde. Es ist nicht physisch erforderlich, dass house ein door hat.
    Anstelle von door() sollte die Methode den Namen getDoor() .
  5. haben
  6. Wenn der Methodenname mehreren Sprachteilen entspricht, wird die Methode immer ein unnötiges Nachdenken seitens des Benutzers erfordern. Aus diesem Grund sollte die Methode wahrscheinlich umbenannt werden.
    Zum Beispiel:
    Nehmen wir an, ich habe eine Methode namens profile() . Abhängig von der Klasse, zu der es gehört, kann profile() ein Verb oder ein Nomen sein. Ich könnte etwas profilieren, oder ich könnte das Profil bekommen. Wenn Sie den Namen der Methode in " getProfile() " oder " doProfiling() " ändern, würde dies zu einer Klärung führen.
user3144349 21.05.2014, 21:52
quelle

1 Antwort

0

Wenn Sie die Namenskonventionen zwischen Variablen und Getter / Setter-Methoden einhalten, können Sie auch Tools verwenden, die auf diesen Konventionen wie BeanUtils und Spring basieren. Während Sie die Namen ändern, um besser lesbar zu sein, verlieren Sie möglicherweise die Fähigkeit, API zu verwenden, die helfen, "Boilerplate" -Code zu entlasten.

    
caburse 21.05.2014, 22:10
quelle