2010-01-10 5 views
0

J'ai un groupe de classes (disons pour les règles de validation). Chacun renvoie un vrai ou faux.Polymorphisme avec différentes signatures de méthodes

J'utilise id et appelle une signature de méthode pour chacune des classes et obtiens les résultats me permettant de créer dynamiquement des règles de validation.

travaillé bien jusqu'à ce que ...

J'ai une nouvelle classe qui prend un paramètre supplémentaire pour arriver à sa validation.

Quelle est la meilleure façon de faire face à cela?

Modifier toutes les autres signatures de méthodes de classe pour prendre un paramètre dont elles n'ont pas besoin?

Répondre

1

Probablement le mode d'action le plus approprié est d'abstraire votre paramètre passant dans un objet qui peut avoir un profil variable de variables.

Bien sûr, plus simplement, Objective-C ne permet une liste de paramètres variables comme beaucoup C:

void method(int a, ...)  // in C 
- (void) method:(id) firstObject, ... // in ObjC 

Apple a Technical Q&A sur le même sujet.

+0

Oui, mettre les variables dans un NSDictionary permettrait aux différentes classes de choisir ce qui les intéresse. –