J'apprends la bibliothèque d'entreprise DAL. Si je comprends bien, je peux accéder à mes données via Base de données db = DatabaseFactory.CreateDatabase();
et également via un résolveur de conteneur unitaire. Qu'est-ce que je ne comprends pas pourquoi j'ai besoin de conteneur de l'unité si je peux faire la même chose en utilisant la DatabaseFactory?
Quels sont les avantages de l'utilisation de l'unité?Bloc d'accès à l'unité de bibliothèque d'entreprise et d'accès aux données
Répondre
Le conteneur Unity ne se contente pas de configurer et de créer des objets de bibliothèque d'entreprise. One way Unity peut créer des objets automatiquement pour vous en déclarant simplement les objets dont vous avez besoin dans vos constructeurs.
public class Foo
{
IExceptionManager _em;
IDatabase _db;
IServiceAgent _sa; // custom made service agent for accessing some other web service
public Foo(IExceptionManager em, IDatabase db, IServiceAgent _sa)
{
_em = em;
_db = db;
_sa = sa;
}
}
Dans l'exemple ci-dessus les variables au niveau des membres _em, _db et _SA sera automatiquement créé pour vous par le conteneur Unity. Vous pouvez enregistrer tout type concret qui correspond à vos interfaces dans le fichier de configuration.
L'injection de dépendances et l'injection de stratégie sont des sujets complexes. Je vous encourage donc à: lisez la documentation Unity fournie avec EntLib et Unity. Si vous utilisez Unity dans les domaines clés de vos systèmes, vous aurez beaucoup de flexibilité avec les tests unitaires &, les problèmes transversaux, l'instrumentation et la surveillance de la santé.