広告
どういう時に使えば良いかさっぱりつかめなかったが、こんな時に使えるかもしれない。
なんらかの制約を加える場合には使えるかもしれない。
たとえば、あるプロパティーが設定されるまでは、すべてのメソッドが使えないようにするとか、例外を返すとか。
制約をかけるクラスは処理を委譲するようにする。
Newした時点で何もしないクラスを委譲先のクラスとしてセットしておく。
プロパティーを設定してはじめて、普通に動作するクラスを移譲先に設定すると、簡単にこの機能が実現できる。
何がいいかというと、各メソッドにプロパティー値が入っているかどうかのチェックを入れなくて良いので、間違いは少なくなりそう。
また、何もしないだけではなく、例外を起こしたり、別の動作をさせることもできる。
広告