設計中應對變化的方法

2021-05-02 20:39:53 字數 623 閱讀 6572

sicp習題2.76:乙個帶有通用型操作的大型系統可能不斷演化,在演化中常需要加入新的資料物件型別或者新的操作。

對於上面提出的三種策略--帶有顯式分派的通用型操作,資料導向的風格,以及訊息傳遞的風格--請描述在加入乙個新型別

或者新操作時,系統所必須做的修改。哪種組織方式最適合那些經常需要加入新型別的系統?哪種組織方式最適合那些經常

需要加入新操作的系統?

我們可以看看oo是哪一種。

oo出現以前,我們是這樣寫函式的。

fun這就是典型的「帶有顯式分派的通用型操作「,這裡把「操作」看成「變化」,把「型別」看成「不變」, 適合加入「新操作」,

不適合加入「新型別」。

為了解決加入新型別的問題,很容易就想到把「操作」看成「不變」,把「型別」看成「變化」。這就是」訊息傳遞「的風格。

也就是現在所謂的oo風格。c++裡面的虛表就是按照這種邏輯設計的,只用告訴物件要呼叫哪個函式,即表的第幾行,就行了。

當然這個表由編譯器負責填寫。

但是oo加「操作」是不方便的,即通常意義上的改介面。

但oo流行的原因在於,我們通常可以先確定介面,但無法確定今後會有哪些擴充套件的物件。

最靈活的就是「資料導向的風格」,型別和操作都可以不確定,完全由執行時資料驅動。

設計,為了更好的應對變化

什麼是設計模式?1.是解決某些問題的辦法 2.不是憑空想象的,是經驗的積累和總結 不可 的變化。產品的上線只是第一步,維護和拓展才是我們花很長時間去做的。1.當前期設計不合理,後期維護出現重大問題如何處理?立即修復 接著挖坑 推倒重做 2.你永遠不可預知產品經理和老闆的idea,被動的接受擺布去實現...

用敏捷方法應對需求變化

一 問題的提出 筆者近幾年一直從事資訊系統的開發,特別是有關國家機關和企業資訊系統的開發工作,取得了許多的經驗和教訓。其中乙個深切的體會是,需求的不斷變化,如果不能很好的應對,會導致整個專案的進度和質量都難以控制,最終使整個系統失敗。特別是在我國,使用者對於如何應用計算機軟體並沒有乙個成熟的經驗,在...

應對企業不斷變化的系統

每個企業都經常會因為戰略或市場進行市場調整,也會因為公司規模的不斷擴大而對公司內部進行擴張和改造,我一直在思考我如何應對這種變化,有沒有軟體的銀彈可以讓我解決這一切的變化呢,事實上我現在還沒有發現它的存在。前段時間接到指示,將原來的系統,乙個一對一的銷售 庫存 採購系統變成多對多的銷售採購系統,這個...