如果我已經通過context become(foo, discardOld = false)
疊加了行爲,有沒有辦法將郵件推遲到行爲堆棧?斯卡拉/阿卡 - 通過行爲堆棧傳遞消息?
比方說,我有堆疊上下文foo
和bar
。兩者都有一些處理Baz
消息(其中包括) - 如果foo
位於行爲堆棧的頂部,是否有方法將Baz
消息傳遞給bar
?
我猜想case
警衛會阻止一個級別消費這個消息,但是在傳遞消息之前,這仍然會在foo
級別使副作用更加複雜 - 警衛必須是一些執行副作用。
編輯爲WHEREFOR:
我用過的堆疊上下文的(在某種程度上)替代類層次結構。在較低級別的上下文中,所有這些參與者都會共享一些基本行爲,然後在添加之後添加的層中的其他行爲區分參與者。這是一種「某種」選擇,因爲演員可能實際上需要改變「類」來回應消息(同時保留自我,以便其他具有這些句柄的演員不需要替換一堆裁判等) 。我希望能夠做的就像有條件地呼叫super.apply(Baz)
,同時在正確的概念層/位置中維護副作用。
hrm,也許。但是,我一定希望保留堆棧的頂部,而不是「不可能」。 – Carl
現在您的堆疊行爲有什麼用處?你有沒有不滿? –
Neg - 會編輯Q. – Carl