Именование методов

Методы являются, возможно, наиболее распространенным элементом Вашего интерфейса программирования, таким образом, необходимо проявить определенную заботу в том, как Вы называете их. В этом разделе рассматриваются следующие аспекты именования метода:

Общие правила

Вот несколько общих руководящих принципов для учета при именовании методов:

Методы доступа

Методы доступа являются теми методами, устанавливающими и возвращающими значение свойства объекта. У них есть определенные рекомендуемые формы, в зависимости от того, как выражено свойство:

Методы делегата

Методы делегата (или методы делегации) являются теми, которых объект вызывает в его делегате (если делегат реализует их), когда определенные события имеют место. У них есть отличительная форма, которые применяются одинаково к методам, вызванным в источнике данных объекта:

Методы сбора

Для объектов, управляющих набором объектов (каждый вызвал элемент того набора), соглашение состоит в том, чтобы иметь методы формы:

- (void)addЭлемент:(elementType)anObj;

- (void)removeЭлемент:(elementType)anObj;

- (NSArray *)элементы;

Например:

- (void)addLayoutManager:(NSLayoutManager *)obj;
- (void)removeLayoutManager:(NSLayoutManager *)obj;
- (NSArray *)layoutManagers;

Следующее является некоторыми квалификациями и улучшениями к этой инструкции:

Существует несколько подробных данных реализации для учета с методами сбора:

Другой пример вышеупомянутых соглашений для методов сбора прибывает из класса NSWindow:

- (void)addChildWindow:(NSWindow *)childWin ordered:(NSWindowOrderingMode)place;
- (void)removeChildWindow:(NSWindow *)childWin;
- (NSArray *)childWindows;
 
- (NSWindow *)parentWindow;
- (void)setParentWindow:(NSWindow *)window;

Аргументы метода

Существует несколько общих правил относительно имен аргументов метода:

Традиционно (в Какао), следующие ключевые слова и параметры используются вместе:

...action:(SEL)aSelector
...alignment:(int)mode
...atIndex:(int)index
...content:(NSRect)aRect
...doubleValue:(double)aDouble
...floatValue:(float)aFloat
...font:(NSFont *)fontObj
...frame:(NSRect)frameRect
...intValue:(int)anInt
...keyEquivalent:(NSString *)charCode
...length:(int)numBytes
...point:(NSPoint)aPoint
...stringValue:(NSString *)aString
...tag:(int)anInt
...target:(id)anObject
...title:(NSString *)aString

Закрытые методы

В большинстве случаев имена закрытого метода обычно соблюдают те же правила как имена открытого метода. Однако общее соглашение состоит в том, чтобы дать закрытым методам префикс, таким образом, просто отличить их от открытых методов. Даже с этим соглашением, имена, данные закрытым методам, могут вызвать специфический тип проблемы. При разработке подкласса класса платформы Какао Вы не можете знать, переопределяют ли Ваши закрытые методы непреднамеренно частные методы платформы, которые тождественно называют.

Имена большинства закрытых методов в платформах Какао имеют префикс подчеркивания (например, _fooData ) отметить их как частных. От этого факта следуют двум рекомендациям.

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