3
原諒我,如果我的術語似乎不正確......(因爲它可能是)與觀察員的PHP對象組成?
說我使用的組成和我的上級對象是這樣的:
abstract child
{
/* array of Activity objects */
public $activities;
abstract function punish() {}
}
favoriteChild extends child
{
function punish() {
// Have a talk
}
}
redHeadedStepChild extends child
{
function punish() {
// Beat with wrench
}
}
現在讓我們說$activities
是由更多的對象組成,其中之一是StealingCookiesFromJar
。
如何從StealingCookiesFromJar
對象內部調用具體子方法punish
? (我對觀察者不熟悉......是我應該在這裏學習的嗎?)
當你調用子類一樣,有時你在'$ this'傳遞和調用它的方法定義'$ invoker'。這樣'StealingCookiesFromTheJar'可以訪問調用類(在本例中爲'redHeadedStepChild')。然而,嚴格來說,如果你遵循觀察者模式,觀察班不應該需要這些信息。 –