0
給出一個包含有一個對象與肥胖型號碼實例的性狀(100文件,每個文件100行)存儲在非延遲VAL成本初始化
trait Repository {
object dao {
val a = new A
val b = new B
val c = new C
...
}
}
什麼初始化成本?假定有100個Repository消費者,每個DAO實例一個(即「對象X擴展倉庫」* 100)。對象X,Y,Z消費者每個都會招致100個DAO實例的開銷嗎?
鑑於Repository使用者將只需要引用DAO實例的一個子集,我正在考慮採用惰性初始化方法,但試圖看看懶惰與非懶惰的代價之間存在什麼折衷初始化。
如果在JVM容器啓動時,所有100個DAO實例都被初始化,那麼非惰性方法將避免不必要的延遲初始化開銷。但是,如果爲每個Repository使用者創建了100個DAO實例,那麼最好不要使用懶惰並減少內存使用量。
+1,嗯,很好,我推往懶VAL如果是這樣的話;即對於每個存儲庫消費者我「支付」以在訪問dao對象容器時初始化存儲庫中的所有100個DAO。但是,如果DAO實例本身是懶惰創建的,那麼我只會承擔我實際使用的DAO成本。 – virtualeyes 2012-07-26 15:48:06