2009-02-10 7 views

Répondre

4

Transformers sont function objects (également appelé abusivement "software" functors, même si foncteur sont un mathematical notion de la catégorie théorie).
Ils représentent une fonction encapsulée dans un objet.

Dans la plupart des cas, les paramètres de la fonction peuvent être définis et le résultat récupéré à l'aide du modèle d'accès commun, tel que setParameter1(Object value) ou getResult(). Le fait que ces fonctions soient encapsulées par des objets réels est également la raison de son plus grand avantage: l'utilisation de nombreux modèles de conception, y compris structurels tels que le modèle Décorateur et comportementaux tels que le modèle de visiteur.

Vous utilisez donc Transformers pour appliquer un motif sur Collections, mais également sur other objects. Voici un exemple de creational patternused through a Transformer.

+0

Cette utilisation de "fonctor" est incorrecte, bien que largement répandue. Un foncteur est en fait une transformation au niveau du type. Voir http://mathworld.wolfram.com/Functor.html – Apocalisp

+0

@Apocalisp: D'accord. J'ai corrigé la réponse pour refléter la distinction entre foncteur et "objet fonction" – VonC