Re: [問題] 關於OO和檔案開啟
※ 引述《Epimenides (No.13)》之銘言:
: : 不能先用個if else判斷之後再決定要不要new呢?
: 在教OO的概念時有看到書上講 一個class做一件事 把那件事做到好
物件架構都是一層疊著一層而來
當低層的物件沒有善盡其責來防錯
上層的物件就會充滿if/else等冗碼
看了就討厭...
防了再防,只是暫時解決,卻仍然沉淪於輪迴
要跳出來就是從底層去防起,例如:
A.DataTable = B.GetDataTable();
當B.GetDataTable在產生資料過程裏,有可能遇到error或空資料
很多人就會直接認為若是error,就丟null出來。
結果A沒有看說明(b也沒寫),就直接接收,null reference錯誤。
這是誰的錯?
我認為正確的寫法,是b的傳回值一定要是個有效的DataTable
即使裏頭是空的也好。
然而若明知有error,要怎麼讓上層(a)去早點知道
以免繼續錯下去呢(或有利偵錯)?
答案就是B應該在自己的class有錯誤時,
throw new Exception("B已知的錯誤"),或者不處理直接讓.net自動抓!
這樣a在使用時,自然會得知問題例外,
有資訊就能互相來討論。
多數人的缺點就是喜歡掩蓋住底層的問題,
這樣的做法,對整個軟體工程都不是好事,
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.130.1.144
推
04/04 06:50, , 1F
04/04 06:50, 1F
推
04/04 15:12, , 2F
04/04 15:12, 2F
推
04/04 15:16, , 3F
04/04 15:16, 3F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 7 之 8 篇):