Лекции.Орг


Поиск:




Категории:

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

 

 

 

 


Имена объектов не указываются явно, следует избегать указания названий объектов в именах методов




line.getLength(); // НЕ РЕКОМЕНДУЕТСЯ: line.getLineLength();


Второй вариант смотрится вполне естественно в объявлении класса, но совершенно избыточен при использовании, как это и показано в примере.

(Пункт № 16 отсутствует.— Примечание переводчика.)

3.2 Особые правила именования


17. Слова get/set должны быть использованы везде, где осуществляется прямой доступ к атрибуту.

employee.getName();

employee.setName(name);

 

matrix.getElement(2, 4);

matrix.setElement(2, 4, value);


Общая практика в сообществе разработчиков C++. В Java это соглашение стало более-менее стандартным.

18. Слово compute может быть использовано в методах, вычисляющих что-либо.

valueSet->computeAverage();

matrix->computeInverse()


Дайте читающему сразу понять, что это времязатратная операция.

19. Слово find может быть использовано в методах, осуществляющих какой-либо поиск.

vertex.findNearestVertex();

matrix.findMinElement();


Дайте читающему сразу понять, что это простой метод поиска, не требующий больших вычислений.

20. Слово initialize может быть использовано там, где объект или сущность инициализируется.

printer.initializeFontSet();


Следует отдавать предпочтение американскому варианту initiali z e, нежели британскому initiali s e. Следует избегать сокращения init.

Переменным, представляющим GUI, следует давать суффикс, соответствующий имени типа компонента.

mainWindow, propertiesDialog, widthScale, loginText,

leftScrollbar, mainForm, fileMenu, minLabel, exitButton, yesToggle и т. д.


Улучшает читаемость, поскольку имя даёт пользователю прямую подсказку о типе переменной и, следовательно, ресурсах объектов.

Множественное число следует использовать для представления наборов (коллекций) объектов.

vector<Point> points;

int values[];


Улучшает читаемость, поскольку имя даёт пользователю прямую подсказку о типе переменной и операциях, которые могут быть применены к этим элементам.

23. Префикс n следует использовать для представления числа объектов.

nPoints, nLines


Обозначение взято из математики, где оно является установившимся соглашением для обозначения числа объектов.

24. Суффикс No следует использовать для обозначения номера сущности.

tableNo, employeeNo


Обозначение взято из математики, где оно является установившимся соглашением для обозначения номера сущности.

Другой неплохой альтернативой является префикс i: iTable, iEmployee. Он ясно даёт понять, что перед нами именованный итератор.

25. Переменным-итераторам следует давать имена i, j, k и т. д.

for (int i = 0; i < nTables); i++) {

:

}

 

for (vector<MyClass>::iterator i = list.begin(); i!= list.end(); i++) {

Element element = *i;

...

}


Обозначение взято из математики, где оно является установившимся соглашением для обозначения итераторов.

Переменные с именами j, k и т. д. рекомендуется использовать только во вложенных циклах.

26. Префикс is следует использовать только для булевых (логических) переменных и методов.

isSet, isVisible, isFinished, isFound, isOpen


Общая практика в сообществе разработчиков C++, иногда используемая и в Java.

Использование этого префикса избавляет от таких имён, как status или flag. isStatus или isFlag просто не подходят, и программист вынужден выбирать более осмысленные имена.

В некоторых ситуациях префикс is лучше заменить на другой: has, can или should:

bool hasLicense();

bool canEvaluate();

bool shouldSort();

 

Симметричные имена должны использоваться для соответствующих операций.

get/set, add/remove, create/destroy, start/stop, insert/delete,

increment/decrement, old/new, begin/end, first/last, up/down, min/max,

next/previous, old/new, open/close, show/hide, suspend/resume, и т. д.


Уменьшайте сложность за счёт симметрии.





Поделиться с друзьями:


Дата добавления: 2015-10-20; Мы поможем в написании ваших работ!; просмотров: 394 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Если вы думаете, что на что-то способны, вы правы; если думаете, что у вас ничего не получится - вы тоже правы. © Генри Форд
==> читать все изречения...

2214 - | 2158 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.011 с.