啥系Train Wrecks
字面上來看就是”火車事故” 或 “火車殘骸”
這裡是用來比喻以下的程式碥
滿常看到程式寫成這樣
這樣的程式很難理解,因為有4個objects需理解( ctxt+3個getXxx)
而這裡有三層,短短一行就得讀很久
那該怎麼寫呢
1.Split
閱讀者可以直接看到Class Type會比較容易閱讀些
不過也不是很好
2.寫成屬性呢
比function好一些,畢竟function還有logic ,而property就單純些
不過會expose internal structure
所以也不是很建議
3.Hybrids
省略…看標題應該就懂了…
4.Hiding Structure
最好的方式,就是不要讓人想,所以細節直接包起來最快
直接在ctxt寫個function,不用看細節(這招真好, 不虧是Uncle Bob)
p.s. 這裡小小的跳過一段,程式最終的用意是要取file path,再寫file,所以直接回給OutputStream
總結
過去就一直覺得Train Wrecks的寫法很難閱讀
幸好被大師指正,有理由可以不這樣寫了
Reference
唔... 我忘了...