Wie bekomme ich alle Methoden in einem Protokoll?

8

Wie kann ich eine Sammlung aller (Klassen-) Methoden in einem gegebenen Protokoll in Smalltalk / Quietschen / Pharo erhalten?

Ich versuche, die von einer Gruppe von Methoden zurückgegebenen Werte zu sammeln. Ich möchte die Methoden nicht in einer Instanz oder Klassenvariablen speichern müssen. Also könnte ich sie einem Protokoll hinzufügen und auf diese Weise "markieren".

Danke.

    
jdinunzio 07.06.2010, 15:48
quelle

1 Antwort

6

In Pharo suchen Sie nach ClassDescription>>allMethodsInCategory: :

%Vor%

Um Methoden in einem klassenseitigen Protokoll zu finden, senden Sie stattdessen einfach an die Metaklasse:

%Vor%

Eine andere Lösung, die Sie in Betracht ziehen sollten, besteht darin, stattdessen ein Pragma zu verwenden, um Ihre Methoden zu markieren. Details zu diesem Ansatz finden Sie im Kommentar zur Klasse Pragma . Es hat den Vorteil, dass andere Pakete frei Methoden hinzufügen können, die zu Ihrer Gruppe gehören (die in einem * Protokoll sein müssen), und dass das Pragma auch dazu verwendet werden kann, andere Metadaten zu speichern (zum Beispiel eine Bewertungsreihenfolge).

NB. Der Selektor allMethodsInCategory: wurde in Pharo 3.0 und später zugunsten von allSelectorsInProtocol:

abgelehnt     
Ash Wilson 07.06.2010, 22:49
quelle

Tags und Links