Я часто бываю в ситуации, когда у меня есть концепция, представленная интерфейсом или классом, а затем у меня есть серия подклассов/субинтерфейсов, которые ее расширяют.
Например: Общий "DoiGraphNode" "DoiGraphNode", представляющий ресурс "DoiGraphNode", представляющий ресурс Java "DoiGraphNode" с соответствующим путем и т.д. И т.д.
Я могу представить три соглашения об именах и буду благодарен за комментарии относительно того, как выбирать.
Вариант 1. Всегда начинайте с названия концепции.
Таким образом: DoiGraphNode, DoiGraphNodeResource, DoiGraphNodeJavaResource, DoiGraphNodeWithPath и т.д.
Pro: Очень ясно, с чем я имею дело, легко увидеть все варианты, которые у меня есть
Con: Не очень естественно? Все выглядит одинаково?
Вариант 2. Поместите специальный материал в начале.
Таким образом: DoiGraphNode, ResourceDoiGraphNode, JavaResourceDoiGraphNode, PathBaseDoiGraphNode, и т.д. и т.д.
Pro: Это очень ясно, когда я вижу его в коде
Con: Найти это может быть сложно, особенно если я не помню имя, отсутствие визуальной согласованности
Вариант 3: Поместите специальные материалы и удалите часть избыточного текста
Таким образом: DoiGraphNode, ResourceNode, JavaResourceNode, GraphNodeWithPath
Pro: Не так много писать и читать Con: Похоже, cr * p, очень непоследовательный, может конфликтовать с другими именами