2011年7月26日 星期二

Foundations of Object-Oriented Programming Using .NET 2.0 Patterns

.NET2.0模式開發實戰/.NET系列/圖靈程序設計叢書


Bear在這裡買的
amazon的參考
-----------------------------------------------------------
作者:(美)戈洛斯|譯者:張凱峰//李彥娜//張廣亮
出版社:人民郵電
ISBN:9787115153852
出版日期:2007/05/01
頁數:305
人民幣:RMB 45 元
-----------------------------------------------------------



P.2
使用這個模塊對外所暴露的功能的源代碼稱為使用者(consumer)。

因為有愈多的使用者引用和使用同一個模塊的代碼,就可能出現愈多的潛在問題。這是因為模塊並不能規定使用者如何使用自已。使用者可能本來在正常運行,但一旦模塊更新,這些變化就有可能會引起應用程序中的邏輯錯誤。

P.3
特徵交互作用(feature-interaction)

模塊化代碼不一定是可重用代碼,可重用代碼也不一定是模塊化代碼,理解這一點很重要。利用率很高的可重用代碼很有可能不是模塊化代碼。

P.5
有些書認為可重用類型或者可重用類型的集合應該規模較小。

P.7
interface類型和struct類型都只能繼承自其他接口。

P.11
當接口被實現為一個值類型時,產生的還是值類型的行為。

以經驗的角度來說,除非你有很好的理由,否則不要在struct類型中繼承接口。

P.15
Bear:
override: 取得新的,即子代
new, virtual: 取得基類,即父代

P.35
當實現錯誤與異常處理基礎架構時,需要定義錯誤與異常之間的區別。錯誤是指發生了不應該發生的事情,但它是可預見的。異常也是指發生了不該發生的事情,但它是不可預見的。異常是永遠都不應該發生的,而錯誤是可能發生的。

P.37
如果賦值不正確,儘管應用程序還在運行,看起來很正常,但是應用程序的狀態已經不正確了。
重點考慮一下一致性問題,產生這種問題的原因是問題被隱藏了。因為存在大量的異常處理,真正的異常反而被掩蓋了,並可能被本來有其他目的的異常處理捕獲。

P.39
更好的策略是永遠不要反回空對象,要麼返回一個沒有內容的對象,要麼返回擁有預設數值的對象,或者產生一個異常來顯示一個有意義的信息。