《實現模式》讀書思考(1)

2021-09-06 01:45:58 字數 931 閱讀 9799

1. 類是昂貴的設計元素,因此減少類的數量便是對系統的改進。

2. override其實是一種設計上的屈服,abstract除外。換句話說,virtual實際上就是一種屈服。

3. 盡量用乙個單詞為基類命名,這樣比較簡單。比較容易為子類命名。

4. 表達「這是我要完成的任務,除此之外的細節不歸我操心」,這個是inte***ce的使用範疇。如果無權改變實現,大量使用inte***ce會嚴重拖累日後的設計調整。

5. 如果程式只是小範圍使用,讓設計元素的可見性略高還不是什麼問題。但如果把介面發布給很多人使用,那麼最好是準確地指定希望讓他們看到哪些操作。

6. 抽象類和介面的選擇還有一點就是要取決於抽象的變化。

7. 用新介面繼承原有介面來發布介面新的版本。

8. 如果你面對乙個可能只是暫時靜止的情景,隨後的操作或者查詢都針對這個情景來進行,那麼函式式的風格比較合適。

9. 通過只提供get方法來構造乙個不可變物件。也成值物件。

10. 多型的優美之處實際上是在於它給系統開啟了變化的機會。

11. 如果物件的邏輯完全由類來決定,閱讀者只要看類的方法名就會知道發生什麼。一旦各個例項有不同的行為,就需要在執行時觀察或分析資料流才能理解乙個物件的行為。

12. 要實現例項特有的行為,if-else是最簡單的方式。這樣的好處在於所有的邏輯都在同乙個類裡。缺點是除了修改物件本身的**之外,沒有其他的辦法能夠修改它的邏輯。

13. 程式中的執行路徑越多,整個程式正確無誤的可能性就越低。也就是說,條件語句的增加會降低可靠性。

14. 用條件語句來分發,但是要保證條件語句只有最簡單的邏輯,而把主要**放到子類中。

15. 另一種實現特定例項的辦法是把部分工作委派給不同型別的物件。不變的邏輯放在發起委派的類中,變化的邏輯交給被委派的物件。

16. 儘管庫類相當常見,但它不適合大量使用,把所有邏輯都放在靜態方法中就錯過了物件的最大好處。

讀書的思考

過去的幾年,看了不少書,但是能夠記住,並且應用實踐的部分,實在少得可憐。有一種 知道的多,做到的少 的感覺。根本談不上什麼知行合一。不僅沒有做到知行合一,而且看的過程也基本是作者說什麼,就學什麼,完全沒有自己的看法。對於作者的觀點甚至是全盤接受。現在想想大概有兩個原因造成的 而這兩點都是需要時間來彌...

讀書之思考

昨晚聽了一講座,題為別人是怎麼讀書的,聽完第二天上午特此記錄一聽後感以備忘。1 讀書是為了什麼 一為消磨時光,無論是很多人包括之前的我都沉迷的網文,還是其他著作 諸如悲慘世界,平凡的世界等等 都僅僅是為了打發時光而已。但這兩類書區別還是大的,網文讀完後索然無味,十天半月後恐怕你都不記得它寫的是什麼了...

單例模式 思考與實現

整個工程中只能建立乙個物件 1 懶漢式 不足 多執行緒下可能出現執行緒不安全問題 class manager 建構函式 私有化 manager const manager m 拷貝建構函式 私有化 public manager getinstance return ptr 指標置空,防止出現野指標 ...