Często znajduję się w sytuacji, w której mam pojęcie reprezentowane przez interfejs lub klasę, a następnie mam serię podklas/podinterfejsów, które ją rozszerzają.Najlepsza praktyka nazywania podklas
Na przykład: rodzajowy "DoiGraphNode" A "DoiGraphNode" reprezentujący zasób A "DoiGraphNode" reprezentujący zasób Java A "DoiGraphNode" z towarzyszącym ścieżce etc., etc.
I może myśleć o trzech konwencjach nazewnictwa i doceniłby komentarze do wyboru.
Opcja 1: Zawsze zaczynaj od nazwy pojęcia.
Zatem: DoiGraphNode, DoiGraphNodeResource, DoiGraphNodeJavaResource, DoiGraphNodeWithPath itp
Pro: Jest bardzo jasne, co mam do czynienia z, to łatwo zobaczyć wszystkie opcje mam
Con: Nie bardzo naturalny? Wszystko wygląda tak samo?
Opcja 2: Umieść specjalne rzeczy na początku.
Zatem: DoiGraphNode, ResourceDoiGraphNode, JavaResourceDoiGraphNode, PathBaseDoiGraphNode, , itp
Pro: Jest bardzo jasne, kiedy widzę go w kodzie
Con: Znalezienie to może być trudne, zwłaszcza jeśli nie pamiętam nazwy, brak spójności wizualnej
Wariant 3: Umieść specjalny materiał i usunąć niektóre z nadmiarowym tekstu
Zatem: DoiGraphNode, ResourceNode, JavaResourceNode, GraphNodeWithPath
Pro: Nie, że dużo pisać i czytać Con: Wygląda na to cr * p, bardzo niespójne, może kolidować z innymi nazwami
Wybrałbym również trzecią opcję. W pierwszych dwóch przypadkach istnieje niebezpieczeństwo, że zakończymy "labirynt krętych, długich nazwisk, wszystkie nieco inne", w których trudno jest je przeczytać, a nawet pamiętać, jaka nazwa odpowiada jakiej koncepcji. – starblue