天天看點

對象的粒度

問題:什麼叫對象的粒度?粗粒度和細粒度啊?   答:同樣一個系統,同樣的需求。兩個設計師給出兩種設計。兩個設計總的代碼行數差不多,但是類的數目不同。

第一個設計有10個類,第二個設計有50個類。這樣平均起來每個類所含有的代碼行數就有很大的差別,第一種設計中的代碼行數平均比第二種設計多大約5倍。

第一種設計是粗粒度的,第二種設計是細粒度的。第一種設計中對象的粒度平均是第二種設計中對象粒度的5倍。       原本項目組中的ejb程式員要求我每一個查詢清單對應一個dao,相應的,粒度就比較細但我注意到許多清單本身的資料通路接口是一緻的,差別隻在于SQL語句的不同于是就采用一個資料通路接口對應一個靜态工廠的方式封裝這些dao,于是,粒度就比較粗對于要使用我的dao的ejb程式員而言, 粒度越細,出現比對錯誤的可能性就越小, 因為,一旦比對錯誤,在編譯期,就會報類型錯誤而我甯願粒度粗一些,因為這在實作重用時有更大的自由度。

繼續閱讀