•程式的中心是行為
•不基於行為的系統劃分,基本上是嚴重錯誤的。
•正是系統的行為為我們提供了第乙個關於應該如何劃分系統的線索
•沒有任何成員變數、狀態
•只是乙個呼叫轉換器
•水蒸氣類沒有存在的必要
•抽象是非常微妙的
•對抽象類,多問問:誰使用它們?
•乙個僅僅含有抽象方法並且不具有任何使用者的類,完全是乙個無用的類
•虛擬抽象類沒有存在的必要
•把問題的本質和細節分離
•忘掉所有的小細節,集中關注根本問題
•根本問題是什麼?
–如對咖啡機:如何煮咖啡?煮咖啡的水從**來?到**去?
•根據根本問題
–定大範圍的職責——模組/類
–定模組/類之間的關聯(互動/訊息/行為)
•總的來說,要從行為入手,用抽象思維進行軟體設計
•關聯是物件之間訊息傳送到路徑
•軟體物件之間的關聯和物理實體的流向沒有任何關係
•物件導向設計的本質
–高層策略和底層細節隔離
讀書筆記 AgilePPP 咖啡的啟示
程式的中心是行為 不基於行為的系統劃分,基本上是嚴重錯誤的。正是系統的行為為我們提供了第乙個關於應該如何劃分系統的線索 沒有任何成員變數 狀態 只是乙個呼叫轉換器 水蒸氣類沒有存在的必要 抽象是非常微妙的 對抽象類,多問問 誰使用它們?乙個僅僅含有抽象方法並且不具有任何使用者的類,完全是乙個無用的類...
讀書筆記 AgilePPP 敏捷設計
全域性檢視和軟體一起演化 設計盡可能適合當前系統,關注當前系統結構 增量地演化出系統最佳架構和設計 設計和架構過程是持續不斷進行的 從根本上講,源 就是設計 敏捷設計是乙個過程,不是乙個事件,是乙個持續的應用原則 模式以及實踐來改進軟體結構和可讀性的過程 敏捷設計步驟 遵循敏捷實踐去發現問題 應用設...
mysql運維 讀書筆記 Mysql 讀書筆記
mysql儲存時間有兩種型別 datetime和timestamp。分別說一下兩者的區別。datetime,以8位元組儲存時間,理論上可以從0000年儲存到9999年。並且沒有時區的概念,它儲存的就是乙個時間點的概念。timestamp和datetime最主要的不同就是,它是以4個位元組儲存,由19...