Mam klasę, która reprezentuje egzamin, może rozpocząć / zresetować / wstrzymać egzamin, więc metody wyglądają następująco:
- (void)startExam;
- (void)resetExam;
- (void)pauseExam;
Ale o ile wiem, jeśli nazwa metody kończy się jakimś rzeczownikiem, powinna mieć argument dla tego rzeczownika, coś takiego jak:
- (void)startExam:(Exam *)exam;
Ale w tym przypadku klasa nosi nazwę „Exam”, więc kiedy ta klasa jest używana, ludzie wiedzieliby, że obiekt jest egzaminem, więc wydaje się, że lepszym sposobem nazwania jest:
@interface Exam : NSObject
- (void)start;
- (void)reset;
- (void)pause;
@end
więc mogę użyć jako:
Exam *exam = [[[Exam alloc] init] autoreleased];
[exam start];
który wygląda lepiej niż:
[exam startExam];
lub
[exam examStart];
Ale to wygląda ZBYT ogólnikowo i czuję się ryzykownieponieważ NSObject (lub jakakolwiek superklasa) może mieć metody o tej samej nazwie dodane w przyszłości, na przykład obiekt Java Object ma notification, notifyAll, wait, a subclass nie powinna nadpisywać ich do innych celów. Czy jest to również prawdą w przypadku celu C?
Jaka jest więc najlepsza konwencja nazewnictwa w tym przypadku?
Dzięki!
Odpowiedzi:
1 dla odpowiedzi № 1start / pauza / reset należą do klasy Exam
. Więc chciałbym:
@interface Exam : NSObject
- (void)start;
- (void)reset;
- (void)pause;
@end
Kiedy używam obiektu klasy Exam
Po prostu przeczytałem to w swojej głowie:
[myExam start];
Dla mnie ma więcej sensu niż to:
[myExam startExam];
Jeśli chodzi o ten, który ma parametr wejściowy:
- (void)startWith:(Exam *)exam;
PS: Ale widziałem, jak robię to, co sugerował Dirk.
1 dla odpowiedzi nr 2
W celu C nikt nie spodziewałby się metody startExam
podjąć jakąkolwiek argumentację. To byłaby metoda startExam:
(zwróć uwagę na końcowy dwukropek). Są to różne metody, możesz nawet mieć obie w tej samej klasie. Więc poszedłbym na startExam
.
0 dla odpowiedzi № 3
Ale to wygląda ZBYT ogólnikowo,
Nie dla mnie to nie "t. Słowo" egzamin "w twoich metodach jest zbędne, biorąc pod uwagę modele obiektowe egzamin. Jeśli widzisz kod
[myExam start];
co jeszcze zaczyna się poza egzaminem?