では、Door クラスと Lock クラスがあるとします。Door クラスlock
のインスタンスには、Lock クラスのインスタンスであるプロパティがあります。
ドアにロックのインスタンスを「所有」させたいのですが、ドアが独自のロックを変更できるようにしたくありません。たとえば、これを可能にしたくない:
class FancyDoor extends Door {
function unlockMyself() {
$this->lock->locked = false;
}
}
しかし、ドアのロックに他のクラスがアクセスできるようにしたい. たとえば、ドアのロックとロック解除を行うには、DoorMan クラスが必要です。したがって、すべての Lock プロパティを非公開にするだけでは簡単ではありません。
これを行うためのパターンはありますか?私は主に PHP で作業していますが、答えは言語固有である必要があります。前もって感謝します。