Lorsque .NET 2.0 est sorti, j'ai été très impressionné par le modèle Provider Factory utilisé pour plusieurs des services qui ont été déployés à ce moment-là ... et commencé à l'utiliser partout.Existe-t-il une solution moins verbeuse que l'utilisation du modèle Provider Factory?
Mais je suis tombé sur des problèmes réels avec elle:
- Sur CE, il n'y avait pas de système de configuration, il ne pouvait pas facilement être porté à cet environnement (et donc provoquer fourches graves dans le code qui pourrait ai-je bien travaillé sur les deux frameworks avec seulement quelques modifications?)
- Je n'ai jamais trouvé de bonne réponse à la question de savoir comment s'assurer que le gestionnaire statique avait enveloppé toutes les méthodes des fournisseurs: le providerBase pouvait implémenter une interface, mais interfaces (AFAIK) ne peut pas être utilisé sur des méthodes statiques. Il y avait donc toujours un risque de divergence entre le fournisseur enveloppé et le gestionnaire statique.
- La quantité de code de la plaque de la chaudière a été projetée à travers le toit, et ma productivité a chuté de façon inverse à travers le sol. Je veux dire par là qu'au lieu de simplement appeler instance.Method();
j'appelais, mais par un Manager.DoWork statique(), qui invoquait DoWork() de son instance, qui habituellement a fini par être un code commun dans la classe ProviderBase, qui a vérifié les args, a fait un travail , et enfin appelé un InternalDoWork() abstrait, qui a été implémenté dans la classe CustomProvider ...
En d'autres termes ... une manière très tortueuse d'invoquer une méthode (3 à 4 méthodes, vérification de l'argument partout, non-clarté de où essayer/catch/log - in Manager ou ProviderBase? -etc
Donc, ma question est: y at-il un autre motif (s) que je peux regarder pour donner config config capacités d'uration, permettant un changement dynamique - enfin, au moins au redémarrage - du fournisseur de services? PS: J'ai beaucoup entendu parler de IoC/DOI ces derniers temps comme étant une solution peut-être plus rapide ... mais pas utilisé dans la production. Cela semble intéressant ... Mais ma première impression est que DOI semble avoir la permutation des services, configurable dans le fichier de configuration, mais pas la configuration des paramètres du fichier de configuration?
Merci!
Félicitations pour avoir souligné, en utilisant des exemples du monde réel, pourquoi le [insérer motif de design préféré ici] n'est pas toujours une balle d'argent. –