主動修改

主動修改計算機編程中,在一項的值變化時,其依賴項的值隨之變化的行為模式。與惰性求值(Lazy Evaluation,又譯為惰性計算、懶惰求值)相對。

假設數據項A的值依賴於數據項B的值。即B的值發生變化將導致A的值的變化。主動修改是在B變化後立即修改A。被動修改或稱惰性求值是在取A的值時才修改A。一個具體例子是對於GUI應用程式,子菜單項的內容列表依賴於程序的狀態,可以在程序狀態改變時立即修改子菜單的列表(主動修改),也可以在僅當菜單被調用時才修改(被動修改)。[1]

另一個例子是:可以在底層數據改變時立即修改視覺顯示,也可以僅在點擊"redraw"按鈕後修改。[2]

事務處理中的直接修改與延遲修改也是這種例子。[3]

參考文獻

  1. ^ Active Scripting Newsletter - Issue #58 - November 2004頁面存檔備份,存於網際網路檔案館), Dr. Dobb's
  2. ^ in: Human Aspects of Visualization: Second IFIP WG 13.7 Workshop on Human-Computer Interaction and Visualization, HCIV (INTERACT) 2009, Uppsala, Sweden, August 24, 2009, p. 49頁面存檔備份,存於網際網路檔案館
  3. ^ C++ Move Semantics for Exception Safety and Optimization in Software Transactional Memory Libraries頁面存檔備份,存於網際網路檔案館), In book: Proceedings of the Third International Workshop on Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems (ICOOOLPS), 2008