1
因此我們假設我有一個Door類和一個Lock類。 Door類的實例具有一個lock
屬性,該屬性是Lock類的一個實例。只能被其他人修改的類屬性模式
我想門「擁有」它是鎖定的實例,但我不想讓門能夠改變自己的鎖。例如,我不希望這是可能的:
class FancyDoor extends Door {
function unlockMyself() {
$this->lock->locked = false;
}
}
但我確實希望有一個門的鎖被其他類訪問。例如,我需要一個DoorMan類來鎖定和解鎖門。所以這並不像將所有Lock屬性設爲私有一樣簡單。
是否有這樣一種模式?我主要使用PHP,但答案確實需要語言特定。提前致謝。
對。這就是我現在正在做的事情,但這是一個非常笨拙的事情,因爲我總是必須把門和鎖合在一起,經理必須跟蹤誰是誰的。 – emersonthis
把他們兩個放在一個類中,並傳遞該類的對象,而不是單獨傳遞它們。 –