Я видел несколько мест, где использовались такие имена, как IdAndName
. Мне это не нравится. Такие имена слишком связаны с текущим статусом класса. Вполне вероятно, что новые каналы будут добавлены/удалены из этого класса, а затем имя перестанет быть точным.
Итак, я призываю вас думать по обоим этим направлениям:
Что это класс, представляющий? Если это суперкласс всех «вещей», имеющих «ID» и «Имя», то вы можете назвать его NamedEntity
(термин Entity
довольно распространен для описания постоянных объектов, которые поддерживают отдельный идентификатор).
(В качестве альтернативы) вы действительно хотите сделать его суперклассом, который расширяют многие другие классы? Звучит так, как будто вы можете перейти к дизайну, поскольку ваши объекты будут удерживать такой объект в поле (в отличие от наследования его класса). Затем вы можете ввести интерфейс Nameable
, который определит getId()
и getName()
, и эти объекты реализуют эти методы (стоимость в терминах объема кода является предельной). Это даст вам лучшее разделение проблем, меньшее сцепление (наследование является самой сильной формой связи) и не будет использовать карту extends
, которую вы можете играть только один раз.
Имя класса должно основываться на том, что оно представляет, а не на типах любых переменных-членов (что, если вы добавили новый член или изменили тип существующего?). – hmjd
Почему не BaseClass –
Или BaseClassThatHoldsNameAndId. :) –