Dépendance Circulaire Solution

De notre projet actuel a couru dans une circulaire problème de dépendance. Notre logique métier de l'assemblée est à l'aide de classes et de méthodes statiques de notre SharedLibrary de l'assemblée. Le SharedLibrary contient tout un tas de fonctions d'assistance, tels que SQL, la classe de Lecteur, les agents Recenseurs, des Variables Globales, gestion des Erreurs, de l'enregistrement et de la Validation.

La SharedLibrary besoins d'accès à l'Entreprise les objets, mais les objets d'Affaires ont besoin d'accéder à SharedLibrary. Les anciens développeurs de résoudre ce code évident odeur de reproduire la fonctionnalité de l'entreprise d'objets dans la bibliothèque partagée (très anti-SÈCHES). J'ai passé une journée maintenant essayer de lire sur mes options pour résoudre cela, mais je suis de frapper une impasse.

Je suis ouvert à l'idée de l'architecture de refonte, mais seulement comme un dernier recours. Alors, comment puis-je avoir Partagé Bibliothèque d'assistance qui peuvent accéder à l'entreprise les objets, avec les objets métier encore l'accès Partagé Bibliothèque d'aide?

La question évidente est: Pourquoi la Bibliothèque Partagée besoin de l'accès à l'activité des Objets? Si vous pouvez répondre à ces questions, vous aurez une solution.
Le SharedLibrary a un résumé global de la variable de classe rempli avec des propriétés statiques. Ces propriétés sont créés à partir des valeurs de la base de données d'où la nécessité pour les entreprises d'objets, ce n'est qu'un exemple parmi tant d'autres. Et bien sûr, les objets d'Affaires ont besoin d'accéder à ces constantes.
C'est pourquoi je n'ai jamais utiliser des termes vagues comme "partagé" pour décrire une bibliothèque. Que faut-il réellement faire? Ce que vous appelez une bibliothèque partagée a clairement beaucoup trop de responsabilités, et peut-être l'objet de gestion de bibliothèque n'trop. Généralement, ces solutions sont résolus en mettant le vraiment indépendant classes/interfaces dans leur propre bibliothèque.

OriginalL'auteur gfoley | 2010-04-07