2010-09-22 14 views
1

Pourquoi me semble-t-il que l'utilisation de Strategy remet simplement le if/else à l'Usine? En utilisant Strategy, une Usine n'a-t-elle pas besoin de comprendre quelle classe concrète instancier, et ne le fait-elle pas par if/else?Stratégie Motif remplaçant if/else ou stats de cas

Une autre option est-elle d'utiliser une Map/List d'une manière ou d'une autre, et les clés sont un nom de la classe à instancier, et peut-être que la classe utilise le Factory pass dans un nom?

Répondre

1

Map \ List est une implémentation du motif Factory. L'utilisation de Strategy est meilleure que si \ else car elle crée du code couplé. Avec Factory + Startegy, vous pouvez étendre les algorithmes de traitement sans toucher au code client, et disposez de plus de moyens pour configurer dynamiquement le code (recompile withot).