est ce code un exemple de dépendance circulaire? Je sais que l'exemple est une mauvaise programmation, mais l'interface n'interdit pas la dépendance circulaire, en raison de la méthode de la valeur? P > p>
3 Réponses :
C'est un exemple vraiment génial. Je vais être joliment verbeux sur mon processus de pensée ici parce que je soupçonne qu'il y a une nommée stupide qui se passe. P>
paquets: feuille Expr p>
Contenu de la feuille: P>
Contenu de Expr: P>
USAGES dans chaque: P>
Nous voyons que Adressexpr dépend de la feuille, qui se trouve dans le paquet de feuille. Une dépendance vers le bas. P>
Nous voyons également que cette feuille dépend de l'adresse, dans le paquet EXPR. P>
Par conséquent, vous avez une dépendance circulaire entre la feuille et les packages Expr. (Remarque: les outils peuvent le montrer. Je l'ai fait à la main parce que votre problème était assez abstrait. Regardez dans JDEPEND) P>
En outre, je ne suis même pas sûr que j'ai jamais entendu parler d'une méthode de valeur. Si le compilateur peut donner une idée de l'utilisation d'une interface bidirectionnelle, cela fonctionnera. Il a le sens de démêler le désordre. P>
au moins au niveau du package. Package Feuille Code> dépend de l'emballage
Expr code> et inversement. Basé sur sa propre expérience - je le refactteur. P>
Je pense qu'il est plus facile de voir dans le diagramme de la classe. Comme vous pouvez le constater, il existe en effet une dépendance circulaire entre votre code strong> p> Donc, peut-être l'une des façons que vous pourriez envisager de refactoring est d'avoir votre ... et ce sera Supprimer toutes les dépendances circulaires indésirables. P> Code refactored possible strong> p> la feuille code> Classe de béton et
Expr code> interface. Je ne dirais pas que c'est
P>
adressexpr code> pour dépendre de
supersheet code> au lieu de
feuille code> et
et
et
Expr code> Pour dépendre de
supersheet code> au lieu de
feuille code>: - p>
p>
Ces diagrammes de classe sont géniaux. Quel outil avez-vous utilisé pour les générer?