2010-10-06 3 views
5

Я собираюсь создать класс User для моего проекта. Любые мнения относительно того, является ли плохая практика создавать такой общепринятый класс? Я мог бы дополнить его префиксом, специфичным для моего проекта.Java «Пользователь» класс именования лучшей практики?

+1

Этот проект предназначен для использования в качестве библиотеки другими проектами (и пользователь будет публичным классом)? – Thilo

+0

№ Проприетарный веб-проект. Мне на самом деле довольно удобно сохранять User как User, но у нас также есть другая концепция сеанса. Пока не дошли до этого, но называть это уже дает мне изжога. – Steve

ответ

3

Это то, что packages предназначено для.

+2

Ну, вы можете в конечном итоге импортировать два пакета с классом «Пользователь». Это может вызвать некоторые головные боли. – rkg

+0

@Ravi, но если это будет проблемой, вы можете обратиться к классам по их полностью квалифицированным именам. –

+2

@Michael: Это правда, но я чувствую, что это ухудшает читаемость кода. – rkg

1

Использование общих имен не является плохой практикой до тех пор, пока вы не укажете имя как функциональность класса. имейте в виду создание правильных пакетов, которые могут более точно определить ваш класс.

2

Я бы посоветовал вам определенно назначить конкретный термин для вашего класса User. «Пользователь» слишком распространен и расплывчатый. Вы можете легко использовать API, который имеет класс «Пользователь» или интерфейс. Хотя последние IDE упрощают реорганизацию вашего кода, было бы проще и проще, если у вас есть определенный для пользователя класс «Пользователь».

+0

Я согласен с тобой. Это начинает беспорядок, когда у вас есть несколько классов с одинаковым именем. –

0

Вы должны использовать Java package s, чтобы избежать конфликтов имен. Нет ничего плохого в использовании общего имени, просто поставьте его в свой собственный пакет. Например, вы могли бы иметь следующую структуру:

com/ 
    yourwebsite/ 
     yourproject/ 
      userdata/ 
       User.java 

Вы затем начать файл "User.java" с:

package com.yourwebsite.yourproject.userdata; 

При импорте, вы будете использовать:

import com.yourwebsite.yourproject.userdata.User; 
+1

Я бы все же предположил, что люди не называют свои классы «String» или «List» или «Collection» или «Exception» или «Connection» или «Session». У меня все в порядке с «User», хотя бы потому, что оно не используется обычно в другом месте (в моей текущей рабочей области, которая имеет много библиотек, есть только одна в «com.sun.tools.internals ...», а другая в «org» .hsqldb ", ни один из которых вы, скорее всего, не используете). – Thilo

+0

@Thilo, да, я, конечно, не буду использовать имена, которые уже используются в каких-либо пакетах «java. *» Или «javax. *», Но в Java API на данный момент нет класса User. –

1

Я всегда стараюсь использовать общие имена, такие как User для ясности. Просто убедитесь, что имена взяты из проблемного домена и существующего словаря проекта. Будьте бдительны для двусмысленностей, и если кто-то возникает, измените имя класса. Современные IDE с автоматизированной поддержкой рефакторинга упрощают работу.

+0

Да. Правильное имя класса в соответствующем пакете будет правильным. IDE, такие как IntelliJ, очень хорошо поддерживают поиск и импорт имен классов - это может быть даже автоматическим. – Jayan

0

Это имя вряд ли будет использоваться каким-либо общедоступным API, поэтому его можно использовать.

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