あるオブジェクトが、別のオブジェクトを
見る
、つまり参照を持つことのできる能力です。
より一般には、これは
スコープの問題
に関わります。あるリソース(例えばインスタンス)が、別のリソースのスコープ内にあるかどうかということです。
オブジェクトAからオブジェクトBへの可視性には、次の種類があります。
- パラメーターによる可視性:BがAのメソッドのパラメーターである場合です。UMLでは依存関係に対応します。
- ローカル変数による可視性:BがAのメソッド内の、パラメーターではないローカルオブジェクトである場合です。UMLでは依存関係に対応します。
- 属性による可視性:BがAの属性である場合です。UMLでは関連に対応します。
- グローバルな可視性:何らかの形でBがグローバルに見える場合です。UMLでは関連に対応します。
可視性を考慮する理由 (Motivation to consider visibility)
- オブジェクトAがオブジェクトBへメッセージを送るには、AからBが見えている必要があります。