我有兩個類 - 類A和B.什麼設計模式是適用於我的方案
類A從上層接收的消息,並且我想這個消息轉發到B級的處理時間。當B處理這個消息時,它會更新自己的狀態併產生一些事件。 A類中有一個方法可以將這些事件發送到上層。
我不能在類A中更改sendEventToUpperLayer()。那麼如何將類B中生成的事件返回到類A?我應該丟棄B類,並將B類的邏輯移入A類?
public class A {
private B b;
private void processMessage(Message) {
b.processMessage(Message);
}
private void sendEventToUpperLayer() {
}
}
public class B {
public void processMessage(Message) {
// It will generate a few events and update b's state.
// All these events and b's state will need to use class A's method of sendEventToUpperLayer() to forward to upper layer.
}
}
老實說不清楚你在做什麼。我可以冒險提出一個建議,看看[觀察者模式](https://en.wikipedia.org/wiki/Observer_pattern) – freedev
感謝freedev。實際上觀察者模式是我想到的第一種模式。但觀察者模式只涉及可觀察的通知觀察者。就我而言,我認爲我的類A是可觀察的,而類B是觀察者,因爲類A將通過使用b.processMessage(Message)通知類B。但我的問題是,B類如何使用A類的方法,這是反向通知? –
你也可以嘗試與委託,傳遞給包含'B'一個lambda,一個方法或對象回調容器'A'。 – freedev