Le meilleur endroit et la meilleure méthode pour enregistrer des objets dans une application Castle Windsor à plusieurs niveaux
Lors de l'intégration de Castle Windsor dans une application avec une structure multicouche (telle qu'une couche d'accès aux données, une couche de logique métier et une couche d'application), il est important d'examiner attentivement la conception de l'enregistrement des objets à Windsor. La question est : qui devrait être responsable de l’enregistrement des objets ?
Plan de conception pour l'enregistrement des objets
Méthode recommandée : Combinaison de racines
Pour obtenir une modularité maximale et un couplage lâche, tous les composants de l'application doivent être composés le plus tard possible. En pratique, cela revient à configurer le conteneur à la racine de l'application :
Main
Comment Global.asax
ServiceHostFactory
fait office de moteur de composition et la racine de l'application fait office de racine de composition . Cela garantit que l'application reste un simple exécutable sans tests unitaires inutiles.
Tests sans conteneurs
Les tests doivent éviter de s'appuyer sur des conteneurs. Au lieu de cela, les objets et les modules doivent être conçus pour être indépendants des conteneurs. Les tests unitaires peuvent directement fournir des tests doubles pour ces composants.
Le programme d'installation de Windsor est utilisé pour empaqueter
À Windsor, la logique d'enregistrement des composants peut être encapsulée dans un programme d'installation qui implémente IWindsorInstaller
. Consultez la documentation de Windsor pour plus de détails.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!