Ich arbeite gerade an einem Zielprojekt c,und haben eine Methode, die ODER in einem anderen Begriff aktiviert / deaktiviert: Aktiviert / deaktiviert einen globalen HTTP-Proxy. Ich habe mich gefragt, was die beste Namenskonvention für eine solche Methode ist. Die Methode verfügt über ein BOOL-Argument, um zu entscheiden, welche Operation ausgeführt werden soll, dh: Aktivieren oder Deaktivieren. Es ist eine Stilfrage, die für die meisten Programmiersprachen relevant ist, und ich habe mich entschlossen, den Input dieser großartigen Community in dieser Angelegenheit zu lieben, die mich aus irgendeinem Grund stört.
Ist das gut ? etwas besser oder klarer?
-(BOOL) activate:(BOOL) theActivateFlag;
oder
-(BOOL) enable:(BOOL) theEnableFlag;
Wird das Aufrufen von [ProxyObj aktivieren: NEIN] ODER [ProxyObj Aktivieren: NEIN] als Deaktivieren des Proxy verstanden?
Vielen Dank :)
Antworten:
0 für die Antwort № 1ich mag bilden reflektieren Funktion in meinem Code
An der Spitze der Datei habe ich ein
#define DISABLED NO
#define ENABLED YES
und habe meine Funktion
- (void)toggleProxyAs:(BOOL)state {
// assuming enabled is property/instance variable
enabled = state;
}
und benutze es als
[myProxyObj toggleProxyAs:ENABLED];
Dies ist nicht die übliche Vorgehensweise, aber für mich ist es klarer und macht separate Aktivatoren / Deaktivatoren überflüssig.
2 für die Antwort № 2
Apple verwendet eine enabled
Immobilien in eigenen Klassen:
@property (nonatomic, getter = isEnabled) BOOL enabled;
Das erzeugt den folgenden Getter und Setter:
- (BOOL)isEnabled {
return enabled;
}
- (void)setEnabled:(BOOL)flag {
enabled = flag;
}
Oder Sie können Ihrem Stellvertreter ein Paar geben activate
und deactivate
Methoden oder enable
und disable
Methoden.
1 für die Antwort № 3
Ich hätte gedacht (nachdem ich darüber nachgedacht und ein paar Mal meine Meinung geändert habe) ...
-(BOOL) enableProxy:(BOOL)shouldEnable;
...Es wäre sinnvoller, obwohl ich der erste war, der zugab, dass ich mich gelegentlich in dunklen Gruben der Namenskonvention verzweifle (die Wände sind mit schlecht geäußerten Funktions- und Methodennamen benannt), also bin ich vielleicht nicht in der Lage, dies zu beantworten. :-)