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