2012-01-08 3 views
2

Я ищу имя для класса в системе, у которого есть Id (Long) и Name (String) в среде java.Как назвать базовый класс, который содержит идентификатор и имя?

Есть ли у них какие-либо условные обозначения для этого класса, или это просто связанная с архитектурой?

+0

Имя класса должно основываться на том, что оно представляет, а не на типах любых переменных-членов (что, если вы добавили новый член или изменили тип существующего?). – hmjd

+0

Почему не BaseClass –

+0

Или BaseClassThatHoldsNameAndId. :) –

ответ

3

Я видел несколько мест, где использовались такие имена, как IdAndName. Мне это не нравится. Такие имена слишком связаны с текущим статусом класса. Вполне вероятно, что новые каналы будут добавлены/удалены из этого класса, а затем имя перестанет быть точным.

Итак, я призываю вас думать по обоим этим направлениям:

  • Что это класс, представляющий? Если это суперкласс всех «вещей», имеющих «ID» и «Имя», то вы можете назвать его NamedEntity (термин Entity довольно распространен для описания постоянных объектов, которые поддерживают отдельный идентификатор).

  • (В качестве альтернативы) вы действительно хотите сделать его суперклассом, который расширяют многие другие классы? Звучит так, как будто вы можете перейти к дизайну, поскольку ваши объекты будут удерживать такой объект в поле (в отличие от наследования его класса). Затем вы можете ввести интерфейс Nameable, который определит getId() и getName(), и эти объекты реализуют эти методы (стоимость в терминах объема кода является предельной). Это даст вам лучшее разделение проблем, меньшее сцепление (наследование является самой сильной формой связи) и не будет использовать карту extends, которую вы можете играть только один раз.

+0

Именинный интерфейс звучит как хорошая идея. Удерживая сцепление. –

0

Не слышал о конвенции для таких случаев. Просто спросите себя, какова цель класса, и появится волшебное существительное.

1

В большинстве случаев это относится к приложениям. Иногда (если для всех объектов значения требуется ID и имя), люди называют такой класс BaseEntity или AbstractEntity. Если вы хотите использовать «классную» конвенцию java, позвоните по этому классу Nameable

+3

Именимое было бы лучше для интерфейса – Hurda

Смежные вопросы