我代表考試的一類,它可以啓動/復位/暫停考試,這樣的方法是這樣的:在這種情況下的ObjC方法命名約定?
- (void)startExam;
- (void)resetExam;
- (void)pauseExam;
但據我所知,如果方法名稱與一些名詞結束,它應該有說法爲名詞,是這樣的:
- (void)startExam:(Exam *)exam;
但是,在這種情況下,類被命名爲「考試」,因此使用類時,人們會知道對象是考試,所以它似乎更好的命名方式是:
@interface Exam : NSObject
- (void)start;
- (void)reset;
- (void)pause;
@end
,所以我可以用是:
Exam *exam = [[[Exam alloc] init] autoreleased];
[exam start];
看起來優於:
[exam startExam];
或
[exam examStart];
但是,這看起來太普通了,我覺得風險是NSObject的(或者其他超類)可能會在將來添加相同名稱的方法,例如,Java Object有notify,notifyAll,wait和subclass不應該覆蓋這些for其他目的。目標C中這也是如此嗎?
那麼在這種情況下最好的命名約定是什麼?
謝謝!
我不會。考慮到該方法發送給考試的對象,選擇器末尾的「考試」一詞是多餘的。 – JeremyP
@JeremyP - 我認爲,它歸結爲一種品味問題。我個人發現'start','pause'和'reset'有點過於通用。 OTOH,如果環境似乎在這裏清楚,它並不重要。無論如何,我的主要觀點是,沒有混亂。 「方法需要一個參數」在這裏,由於Objective-C的語法。 – Dirk