Соглашение об именах для метода, который включает / отключает или активирует / деактивирует - PullRequest
1 голос
/ 23 января 2011

В настоящее время я работаю над целевым проектом c, и у меня есть метод, который включает / отключает ИЛИ в другом термине: активирует / деактивирует глобальный HTTP-прокси.Мне было интересно, что является лучшим соглашением об именах для такого метода.Метод имеет аргумент BOOL, чтобы решить, какую операцию выполнять, т. Е. Включить или отключить.Это вопрос стиля, который имеет отношение к большинству языков программирования, и я решил, что мне понравился бы вклад этого великого сообщества по этому вопросу, который беспокоит меня по некоторым причинам.

Это хорошо?что-нибудь лучше или понятнее?

-(BOOL) activate:(BOOL) theActivateFlag;

или

-(BOOL) enable:(BOOL) theEnableFlag;

Будет ли вызов [proxyObj активировать: НЕТ] ИЛИ [proxyObj enable: НЕТ] будет пониматься как деактивация прокси?
Thx:)

Ответы [ 3 ]

2 голосов
/ 23 января 2011

Apple использует свойство enabled в своих собственных классах:

@property (nonatomic, getter = isEnabled) BOOL enabled;

, которое создает следующий метод получения и установки:

- (BOOL)isEnabled {
    return enabled;
}

- (void)setEnabled:(BOOL)flag {
    enabled = flag;
}

Или вы можете дать своему проксипара методов activate и deactivate или enable и disable методов.

1 голос
/ 23 января 2011

Я бы подумал (, подумав об этом и передумав несколько раз ) ...

-(BOOL) enableProxy:(BOOL)shouldEnable;

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

0 голосов
/ 24 января 2011

Мне нравится форма , чтобы отразить функцию в моем коде

В верхней части файла я бы поставил

#define DISABLED NO
#define ENABLED YES

и пусть моя функция будет

- (void)toggleProxyAs:(BOOL)state {
    // assuming enabled is property/instance variable
    enabled = state;
}

и использовать ее как

[myProxyObj toggleProxyAs:ENABLED];

Это не стандартный способ ведения дел, но для меня он более понятен и устраняет необходимость в отдельныхактиваторы / дезактиваторы.

...