在我的應用程序中,我有很多類。這些類中的大多數存儲了相當多的數據,並且如果其中一個數據類的內容發生更改,我的應用程序中的其他模塊也會「更新」。觀察數據變化的不同方式
做到這一點,典型的方式是這樣的:
void MyDataClass::setMember(double d)
{
m_member = d;
notifyAllObservers();
}
這是一個相當不錯的方法,如果會員不經常被更改和「觀察班的需求將上升,最新快儘可能。
觀察變化的另一種方式是這樣的:
void MyDataClass::setMember(double d)
{
setDirty();
m_member = d;
}
這是如果成員發生了多次改變一個很好的方法,和「觀察班」看定期在所有的「髒」的情況。
不幸的是,我在我的類中混合了兩種數據成員。有些改變不是那麼頻繁(我可以和普通的觀察者一起生活),其他改變很多次(這是在複雜的數學算法中),每次調用觀察者都會改變我的應用程序的性能。
是否有任何其他的觀察數據更改的技巧,或者您可以輕鬆地將幾種不同的觀察數據更改的方法組合起來的模式?
雖然這是一個相當語言無關的問題(我可以嘗試理解其他語言的示例),但最終的解決方案應該可以在C++中使用。
令人印象深刻。 +1。 – Patrick 2010-07-02 08:25:17
同一主題(帕特里克)新問題:http://stackoverflow.com/questions/3667317/best-way-to-keep-the-user-interface-up-to-date在那裏,他的言論,簡單地生成很多事件可能會導致表演失敗。 – 2010-09-08 13:35:23