我代表考试的一类,它可以启动/复位/暂停考试,这样的方法是这样的:在这种情况下的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