Во-первых, я считаю, что префикс I, а затем описание неверен, поскольку это означает, что реализации могут иметь более короткое имя. IList (intf) -> Список. Это анти-паттерн, так как мы все знаем, что мы должны использовать intf и, возможно, только конкретные типы при создании. Не сердитесь на меня, это обобщение, но предпосылка исчисляется лишь редко. Имя реализации должно описывать, как он реализует intf или что он делает. Подумайте о intf List, LinkedList, который реализует List, используя связанный список. Кому интересно, если это дольше, так как мы должны использовать List большую часть времени. Если у нас есть класс, реализующий много intf, мы, вероятно, не должны включать все intf как тени для реального назначения класса. В случае, если что-то удалено без intf, имеет смысл. Например, ppl называет меня по имени, а не Person, Sibling, разработчик и т. Д., Используя мое имя, является лучшим наиболее описательным именем. Я полагаю, если класс подразумевает простой intf, тогда назовите его Default Intf, что делает его обязательным, это реализация Intf по умолчанию.
Имена классов должны быть в конце понятными для человека и почти короткой фразой, описывающей их назначение. Префиксные коды и т. Д. Не очень хороши, поскольку мы общаемся со словами, а не с кодами. Компьютеры понимают, как называются классы, и почему остается то, что мы называем вещи так, чтобы имена помогали нам и нашим коллегам.