Was ist die Definition der Convenience-Methode in Bezug auf Ziel C?

8

In den meisten Sprachen, mit denen ich mich beschäftigt habe, wird eine Methode als Convenience-Methode bezeichnet. Das bedeutet, dass die Methode eine kleine Aufgabe ausführt, die sehr häufig ausgeführt wird, und daher ist es bequemer Methode.

In Objective-C gilt diese Definition? Oder wird es im Allgemeinen nur verwendet, um Klassenmethoden zu beschreiben, die ein vorgebautes Objekt zurückgeben? Ex. [NSString stringWithContentsOfFile: ...]

Ist das nur eine Vorliebe, oder gibt es eine harte und schnelle Definition für diese Begriffe?

Prost, Stefan

    
Stefan H 23.02.2011, 20:42
quelle

2 Antworten

9

Worüber du sprichst, ist eigentlich ein "Convenience Constructor" in Objective C. (Beachte, dass es kein Konstruktor im Sinne von C ++ / Java / C # ist, es ist eigentlich eine Objektinitialisierer- / Factory-Methode, aber es scheint so die Konvention sein, die "Convenience Constructors" zu nennen. "Convenience-Konstruktoren" in Obj C sind eine Konvention oder ein Muster zum Erstellen einer Konstruktor- / Initialisierungs- / Factory-Methode für eine Klasse, die bestimmte Parameter verwendet. Dieses Muster enthält auch einige spezielle Konventionen, denen Sie folgen sollten (z. B. die automatische Freigabe des neuen Objekts im Konstruktor), damit Ihre benutzerdefinierten Klassen gut zu den integrierten Typen passen.

Siehe diese Seite (etwas weiter unten) für weitere Informationen: Ссылка

Wie bei der "Convenience-Methode" hat dieser spezielle Begriff keine besondere Bedeutung in Objective C. Sie können in Obj C jede Art von Convenience-Methode erstellen, und es gibt keine Erwartungen darüber, was sie tun sollte oder nicht. Es ist nur "Convenience Constructor", der eine besondere Bedeutung hat.

    
Andy White 23.02.2011, 20:47
quelle
4

Soweit ich weiß, bedeutet "Convenience-Methode" im Grunde genommen das, was Sie hier definiert haben: eine einzelne Methode oder Funktion, die aufgrund ihrer Benutzungshäufigkeit eine kompliziertere Reihe von Invokationen ersetzt.

In Objective-C ist der "normale" Weg, eine neue Instanz zu erstellen, etwas in der Art von NSSomething * mySomething = [[[NSSomething alloc] initWithParam:... andParam:...] autorelease] . Viele Klassen stellen Convenience-Konstruktoren zur Verfügung, die diese drei Schritte vereinfachen (tatsächlich tun sie in den meisten Fällen wahrscheinlich genau dasselbe, sind aber hinter einem Klassenmethoden-Aufruf eingeschlossen).

    
dcrosta 23.02.2011 20:45
quelle