委譲の隠蔽 Hide Delegate


前提

プログラムを書いていると、
プログラム同士が、複雑なネットワークを形作る。

この関係が、複雑になりすぎるとプログラムの修正が困難になってくる。
これを防ぐために用いるのが委譲の隠蔽。

目的

委譲クラスを使用するべきクラスからしか、アクセス出来ないようにする。

行うこと

クラスに委譲メソッドを追加して、使用しなくても良いクラスから隠蔽を行う。

結果

クラス間の無駄な関連が減り、コードの修正がしやすくなる
ただし、委譲メソッドを作成したクラスの責任が増える

手順

委譲メソッドの作成

1.委譲クラスのメソッドに対応するメソッドを作成する。
2.いままで委譲クラスを読んでいたクラスは、メソッドを呼ぶように変更をする。
3.コンパイルしてテストをする。

委譲クラスの隠蔽

委譲クラスのgetterメソッドを削除する。
コンパイルしてテストをする。

サンプルコード

-変更

class.getter().method();
  • 変更あと
class.method();

その他の隠蔽

アクセス制御を使った隠蔽

private をつけてフィールドやメソッドを宣言する。
他のクラスから見えないようになるので、修正の際にクラス内のみに気を使えば良い

パッケージを使った隠蔽

クラス宣言の際に、publicをつけずに宣言をする。
そうすると他のパッケージから見えなくなる

ネストしたクラスを使った隠蔽

ネストしたクラスは、そのネスト元のクラスの中でのみ使うクラスになる。