我正在寫一些數據分析軟件,並決定採用這樣的方法:
OOP和MVC編程風格
EPN:
模型/ data.py < - 模型定義
模型/ reader.py < - 如何將數據讀入模型
視圖/ gui.py < - 主GUI框架(WX)
視圖/ dialogs.py < - 不同的對話框(WX)
epn.py < - 控制器
對於gui和數據之間的通信,我使用了wx.lib.pubsub。因此,當按下按鈕「調製指數」,epn.py捕捉消息和命令:
self.view.control_panel.displayModulationIndex(self.data.getModulationIndex())
其中self.data.getModulationIndex()是:
def getModulationIndex(self):
m = self.mean_flux
f = self.fluxes
# other things
在另一方面我可以寫它爲:
def getModulationIndex(self, m, f)
# other things
,並稱呼其爲:
m = self.data.mean_flux
f = self.data.fluxes
self.view.control_panel.displayModulationIndex(self.data.getModulationIndex(m, f))
從我的角度來看,第一個例子更好(更短,封裝,更加防錯)。但是測試它很難---你不能只在一些模擬對象上調用該方法。
希望這一次是明確
問候
CHRISS
什麼阻止你在調用方法之前設置這些字段? – 2008-12-18 09:51:30