2011-02-12 49 views
6

它不是繼承,它不是嵌套類,我不知道它是什麼,這是什麼使我在這裏。c# - 創建的對象能夠訪問創建它的對象的成員

我寫一個程序,這是在高級別功能:

的Main()創建 'A()' 類型的對象的數組 'A()的構造函數創建20「B() ''objects 'B()'構造函數創建4'C()'對象

'B()'想要使用'A()'的一些公共成員,並且'C'使用'A()'和'B()'的一些公共成員

換句話說,A是控制記錄,B是20個命令的列表並且每個命令具有達4c onditions。現在C()應該能夠驗證條件,B()應該能夠執行命令基於C()的驗證和A()應該知道什麼時候所有的B完成

所以這個想法是某些對象會被派生出來,他們應該能夠使用創建它們的對象中的成員。我可以在構造函數中傳遞信息,但這很乏味。有一個很好的設計能夠做到上述。

任何人都可以幫忙嗎?

回答

8

我可以在構造函數中傳遞信息,但會變得單調乏味。

這是一個非常有效的手段,有這種行爲和一個非常常見的模式。單調乏味的程度很低,特別是如果你設計你的代碼乾淨。它基本上改變)一行代碼從B bInstance = new B();B bInstance = new B(this);

A(當所有B的完成

我會建議使用事件來處理這應該以某種方式知道了。 B可以包括每個A預訂的「完成」事件。這將使其知道確切的事情何時完成。