Re: [資料] 神之物件 (God object, Blob AntiPattern)

看板OOAD作者 (Alien)時間17年前 (2007/09/14 20:32), 編輯推噓1(102)
留言3則, 2人參與, 最新討論串11/19 (看更多)
※ 引述《H45 (!H45)》之銘言: : 個人的看法是「一致就是簡單,視情況而定就是複雜。」 : constructor/destructor 要做什麼事情是非常直觀的 : 而且永遠都一樣的: : 「建構子永遠只建立本物件初始的屬性。」 : 除了初始化屬性之外,其他的事情都不要做。 大致上認同. (握手) : 讓 constructor/destructor 來做 Lock/unlock 反而限制了功能 : 事實上在許多例子中並不需要把整個函式都鎖起來 : 著名的 Writer/Reader 問題就是一例。 其實我之前回的時候, LockGuard 這特例我就有想起來. 所以我才特意寫了 "沒有很強的原因而妄顧本身設計的目的" 的一句. LockGuard 算是一個很特別的應用. 會用到 LockGuard 最主要的原因是能夠大大減少出問題 的機會. 如果是自己作 explicit lock/unlock 的話, 中途 有一個uncaught exception , 那個 mutex 就沒人會去 unlock 它了. 這個 trick 是我覺得能接受的額外應用, 也沒有其他選擇 可以做到一樣的效果 說到 Readers Writer Lock, 一樣可以寫對應的 LockGuard . 這個反而不是很大的問題. [43] Alien -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 202.22.246.26

09/14 20:41, , 1F
既然是 uncaught exception, 那麼....仍然需要 unlock 它嗎..?
09/14 20:41, 1F

09/14 20:42, , 2F
這個特例我不太熟,請指教 m(_ _)m
09/14 20:42, 2F

09/15 00:29, , 3F
這是很典型的RAII,是C++處理資源的標準做法
09/15 00:29, 3F
文章代碼(AID): #16wdzI4L (OOAD)
討論串 (同標題文章)
文章代碼(AID): #16wdzI4L (OOAD)