Как назвать базовый класс, который содержит Id и Name? - PullRequest
2 голосов
/ 08 января 2012

Я ищу имя класса в системе, в котором есть Id (Long) и Name (String) в среде Java.

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

Ответы [ 3 ]

3 голосов
/ 08 января 2012

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

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

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

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

1 голос
/ 08 января 2012

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

0 голосов
/ 08 января 2012

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

...