2009-05-11 6 views
1

Comment vraiment "mal" sont des dépendances d'espace de noms cycliques au sein d'un même assemblage. Je comprends que l'utilisation de plusieurs assemblages change tout et que quelque chose comme ça ne compile pas, mais quel est le vrai risque de le faire dans un seul assemblage?Espaces de noms cycliques en C#

Répondre

2

Aucun risque du tout - n'hésitez pas à référencer tout ce que vous voulez dans le même assemblage. Cependant, cette approche rendra votre application fragile et difficile à mettre à l'échelle. Une meilleure approche consiste à essayer de garder vos composants aussi orthogonaux que possible. Ce que la langue et le compilateur vous permettent de faire n'est pas nécessairement ce qui est le mieux pour les besoins de développement à long terme (corrections de bugs, mise à l'échelle, nouvelles fonctionnalités, etc.). Vous devriez vous battre pour loose coupling and high cohesion.

+0

Compris, mais je ne parle que de quelques cas où l'utilisation de quelque chose comme une interface séparée n'est pas justifiée et serait exagéré. –

+0

Alors dans ce cas, je ne crois pas que vous avez quelque chose à se préoccuper :) –

1

Les espaces de noms sont un moyen de fournir une organisation logique à votre code. Ils fournissent un moyen de réutiliser les noms en l'appliquant dans un certain contexte. Il n'y a rien de mal à ce que les classes de deux espaces de noms dépendent les unes des autres.

Les déphasages cycliques dans les assemblages sont un peu plus complexes. Dernière fois que j'ai vérifié Visual Studio ne permettrait pas ce type de relation directement.

1

Je ne pense pas qu'il y ait des risques en soi, et dans certains cas, c'est certainement la façon naturelle de faire les choses. System.Text.StringBuilder utilise évidemment System.String, et je serais très surpris si rien dans l'espace de noms System utilisé StringBuilder à son tour.

Il est probablement utile de vérifier votre conception de temps en temps: vous devez savoir si vous pouvez séparer la fonctionnalité en composants distincts. Assez souvent la réponse sera "non", à quel point juste aller de l'avant sans sentiment de culpabilité :)

Questions connexes