2017-10-28 9 views
1

私はしばらくの間これを行う方法を探していましたが、回答が見つかりませんでした。ここに私の状況の簡単な説明があります:クラス図の静的参照を表示する - Visual Studio 2017

私の解決策では、自分自身への静的な参照を持ついくつかの "マネージャークラス"があります。例えば、

public static UIManager Instance; 
Instance = this; 

これらのマネージャクラスはすべて、アプリケーションの開始時に実行されます。だから任意の時点でどのクラスでも呼び出すことができます:

UIManager.Instance.DoSomething(); 

これまで私はクラス図を作成する必要がありました。

Visual Studioのクラス図の機能により、[Assossiation]オプションを使用して参照をトレースすることができます。たとえば、同じUIManagerの場合:enter image description here

これは、UIManagerクラスにPauseMenuクラスへの参照があるためです。

しかし、静的インスタンス変数を使用してUIManagerと通信する 'AreaChecker'クラスは、クラス図にリンクが表示されません。 UIMangerクラスがプロジェクトである場合は、この例のために、AreaCheckerのみ正しく動作、ためのリンクが重要であることを

enter image description here

私はそのリンクを自動的に作成したいと思っています。これはクラス図によって何らかの形でサポートされていますか?もしそうなら、私はどのようにそれを行うことができますか?そうでない場合は、私がそれを行うためにダウンロードすべき別のプラグイン/プログラムがありますか?

+0

なぜ 'AreaChecker'にリンクが必要ですか?どこへ?コードを知らなくても、どのように推測すべきですか? Btw:インスタンス名は小文字で始まり、型と区別する必要があります。 –

+0

答えてくれてありがとう、トーマス。私が自分自身を明確にしなかったら、すみません。 'AreaChecker'が静的リファレンス' Instance'を通して 'UIManager'からメソッドを呼び出すため、リンクが必要です。 このように: 'UIManager.Instance.Method()'。 'UIManger'がなければ' AreaCheker'は正しく動作しません。 これが私がこのリンクを望んでいた理由なので、実際に何が接続されているかを見ることができました。 名前については、私はプライベート変数には小文字を使用し、パブリック変数には大文字を使用していました。 'Instance'は静的でpublicなので、大文字にしました。 – Roiw

答えて

0

UMLには静的変数の概念がありません。したがって、それを参照する関連は存在しません。そのような関連付けを手作業で追加して、何らかの形でステレオタイプすることができます(たとえば、<<static>>)。これは、ドメインのモデリングルールで説明する必要のある作業です。

+0

興味深い...私はその程度の基準に慣れていませんが、直感的には破線の矢印(依存関係)が当てはまるようです。 – Fuhrmanator

+0

@Fuhrmanator依存関係は単なる弱いリンクです。あなたもそれを使うことができます。リンクが意味するのは肯定的なものです。 –

関連する問題