Q
從子類中調用方法
1
A
回答
4
答案取決於什麼呼叫的語義;你的例子是模糊的,並沒有明顯的語義來推理,所以不可能給出一個好的答案。
爲主提供服務給孩子?舉例來說,就是孩子想上主像「給我拿誰被授權做嗒嗒用戶列表」或「加起來所有應收十一月賬戶」做電話嗎?
或者是主要反應與兒童assocaited事件?例如,Child可能是一個按鈕,Main是一個窗體,Main會希望在點擊按鈕時作出反應。
在前一種情況下,Main應該向實現所需服務的Child提供一個對象 - 可能本身。該對象可能是Main本身,也可能是方法或接口的委託,但它是Child在需要服務時可以調用的東西。
在後一種情況下,主要應聽取兒童引發的事件。
這是正確的取決於含義的對象;你能更清楚地描述意思嗎?
3
三項賽是適當的圖案。關於對象/類層次結構中圍繞信息流的概念原因,請參閱this answer。
更深部件簡稱爲「釋放」他們的信息 - 通常是通過一個事件 - 它「浮」鏈向上而不直接調用
7
簡單的解決方案將是,以一個實例提供於Main
參考Child
類:
public class Child
{
private Main main;
public Child(Main main)
{
this.main = main;
main.Bar();
}
}
public class Main
{
public void Foo()
{
Child c = new Child(this);
}
public void Bar()
{
}
}
這可以通過抽象掉一個IMain
接口後面Main
類,以便最小化耦合來進一步提高。
但最好的解決方法是將利用事件冒泡
相關問題
- 1. 從子類調用ViewController中的方法
- 2. 從超類調用子類方法
- 3. Actionscript:從子類調用超類方法
- 4. 從子類中的重載方法調用基類方法
- 5. 爲什麼從基類調用方法調用子方法?
- 6. 從UIImageview的子類調用方法
- 7. 方法ViewDidLoad不從子類調用?
- 8. 從父項調用子類方法
- 9. 從類中調用方法
- 10. 從基類方法調用子類虛擬方法
- 11. 從子類工廠方法PHP調用超類工廠方法
- 12. 調用子類的方法
- 13. 調用超類方法後調用子類方法
- 14. 從Java子類中調用的方法不是在父類
- 15. 從該類中調用類方法
- 16. 調用子類的方法,在Java中
- 17. 調用繼承中的子類方法
- 18. 如何從Cocoa中的子類委託方法調用超類委託方法?
- 19. 子類調用父類的方法
- 20. 當從子女調用時調用原始類方法
- 21. Ember.js如何從子類調用超類或基類方法?
- 22. 從抽象超類調用重寫的子類的類方法
- 23. 如何從JavaScript中的子類調用父方法?
- 24. 如何從子類UIButton調用viewController中的方法?
- 25. 從openGL類中調用外部方法
- 26. 從類中調用方法屬性?
- 27. 從java類中調用RFT方法
- 28. 從視圖中調用類方法
- 29. 從它的類子類調用對象上的方法
- 30. EmberJS:從子類的init方法調用父類的功能
主要是的MainPage,一個用戶的控制。孩子是代表場景中的物體的類。我想調用一個Main的子方法,它改變了一些MainPage參數。該調用取決於用戶交互 – jose 2010-01-27 16:35:09