2011-10-18 62 views
-1

我一直問自己的一個問題是面向對象編程,應該如何以面向對象的方式傳遞設置和屬性等數據?組織數據並組織訪問權限?

例如,大多數程序都有選項,假設您可以選擇設置撤消級別。這必須獲得,然後設置爲一個新的值。如果這些設置保存在xml文件中,應用程序的該部分(選項對話框)仍然需要某種xml解析器來加載數據。在另一種情況下,您將代替獲取和設置設置的對象,每個需要此區域的區域都可以全局訪問所有設置,並且需要傳遞指向它的指針。

在像Maya或3DS Max這樣的場景中,這些場景使用巨大的gui系統來設置對象屬性,這是如何以乾淨和OO的方式完成的?該小部件需要從3D對象獲取數據,並且需要向該對象發送信息。一個對話框應該知道關於3D對象的任何事情嗎可能不會。那通常是怎麼做的?

在另一種情況下,我可能需要更新狀態欄,當我的框架獲得鼠標移動時。這是否意味着我的框架應該有一個指向我的狀態欄的指針?

任何抽象的例子或讀這個將不勝感激。

感謝

+1

你在開我玩嗎,這是一個很好的問題... – jmasterx

回答

2

在之前的工作中,我們有幾個XML文件我們的各種應用程序等的配置相似,但根據環境和執行上下文變化。大部分配置都是第三方服務的用戶名和密碼。當密碼發生變化時,我們不得不衝過數十個XML文件並進行更改,然後重新部署數十個應用程序。

我使用接口和類型層次結構將所有XML配置遷移到對象。這些接口使我能夠針對通用配置結構進行編碼,並獲得編譯時支持以及使用依賴注入來解析運行時實例。類型層次結構允許我在基類中定義一次不變的配置,並且只覆蓋不同的實際值。

這對於一個小應用程序來說可能是過量的,但在我們的案例中卻是必不可少的。

+0

謝謝!這很有趣 :) – jmasterx