Мои Конспекты
Главная | Обратная связь


Автомобили
Астрономия
Биология
География
Дом и сад
Другие языки
Другое
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Металлургия
Механика
Образование
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Туризм
Физика
Философия
Финансы
Химия
Черчение
Экология
Экономика
Электроника

Примеры типографских соглашений



 

Тип идентификатора Примеры
Пакет Com.sun.medialib, com.sun.jdi.event
Класс или интерфейс Timer, TimerTask, KeyFactorySpi, HttpServlet
Метод или поле Remove, ensureCapacity, getCrc
Поле-константа VALUES, NEGATIVE_INFINITY
Локальная переменная I, xref, houseNumber
   

 

 

Для методов, выполняющих какое-либо действие, в качестве названия использу­ются глаголы или глагольные конструкции, например append и drawlmage. для мето­дов, возвращающих булево значение, обычно применяются названия, в которых сначала идет слово "is", а потом существительное, именная конструкция' или любое слово (фраза), играющее роль прилагательного, например isDigit, isPrоbаblеРrime, isEmpty, isEnabled, isRunning.

Для именования методов, не связанных с булевыми операциями, а также методов, возвращающих атрибут объекта, для которого они были вызваны, обычно использу­ется существительное, именная конструкция либо глагольная конструкция, начинаю­щаяся с глагола "get", например size, hashCode, getТime. Отдельные пользователи требуют, чтобы применялась лишь третья группа (начинающаяся с "get"), но для по­добных претензий нет никаких оснований. Первые две формы обычно делают текст программы более удобным для чтения, например:

 

if (car.speed() > 2* SPEED_LIMIT)

generateAudibleAlert("Watch out for cops!");

 

Форма, начинающаяся с "get”, -обязательна, если метод принадлежит к классу Веаn [JavaBeans]. Ее можно также рекомендовать, если в будущем вы собираетесь превратить свой класс в Веаn. Наконец, серьезные основания для использования данной формы имеются в том случае, если в классе уже есть метод, присваивающий этому же атрибуту новое значение. При этом указанные методы следует назвать getAttribute и setAttribute.

Несколько названий методов заслуживают особого упоминания. Методы, кото­рые преобразуют тип объекта и возвращают независимый объект другого типа, часто называются toType, например toString, toArray. Методы, которые возвращают представление (статья 4), имеющее иной тип, чем сам объект, обычно называются asType, например asList. Методы, возвращающие простой тип с тем же значением,

 

 

 

что и у объекта, в котором они были вызваны, называются typeValue, например intValue. для статических методов генерации широко используются названия valueOf и getInstance (статья 1).

Грамматические соглашения для названий полей формализованы в меньшей степени и не играют такой большой роли, как в случае с классами, интерфейсами и методами, поскольку хорошо спроектированный API, если и предоставляет какое­ либо поля, то немного. Поля типа boolean обычно именуются так же, как логические методы доступа, но префикс "is" у них опускается, например 1п1 tialized, composite. Поля других типов, как правило, именуются с помощью существительного или имен­ной конструкции, например height, digits, bodyStyle. Грамматические соглашения для локальных переменных аналогичны соглашениям для полей, только их соблюде­ние еще менее обязательно.

Подведем итоги. Изучите стандартные соглашения по именованию и доведите их использование до автоматизма. Типографские соглашения просты и практически однозначны; грамматические соглашения более сложные и свободные. Как сказано в "The Java Language Specificatioп" [JLS, 6.8], не нужно рабски следовать этим согла­шениям, если длительная практика их применения диктует иное решение. Пользуйтесь здравым смыслом.

 

 

 

 

Глава 8