第二章 策略模式
策略模式與簡單工廠(factory method)的結合:
在基本的策略模式中,選擇所使用的具體策略實現的職責由客戶端使用者承擔,這並沒有解除客戶端需要選擇判斷的壓力;將策略模式與簡單工廠模式結合後(在 context類中加入factory method的特性),選擇具體實現的職責也由context來承擔,這樣最大化的減輕了客戶端的負擔。
第四章 開放封閉原則
面對需求的變化,對程式的改動是通過增加新**進行的,而不是更改現有的**——這是「開發、封閉原則」的精髓。
第六章 裝飾模式
裝飾模式的優點在於:將類的核心功能和裝飾性功能區進行區分,且消除了若干裝飾性功能進行組合時可能的**重複
第八章 工廠方法(factory method)
工廠方法
與簡單工廠的區別:
簡單工廠模式的最大優點在與工廠類中包含了必要的邏輯判斷,能夠根據客戶端給出的條件動態例項化合適的類,對客戶端來說,去除了同同特定產品的依賴關係。 但它的問題在於,如果要增加新的產品,則必須要對工廠類中的邏輯判斷部分(switch/case)進行修改,這違背了「封閉、開放原則」
簡單工廠與工廠方法的最大區別在於在工廠方法中,為所有工廠類增加了乙個抽象基類;這樣工廠方法將簡單工廠的內部邏輯判斷轉移到了客戶端來進行,
概括的說,工廠方法克服了簡單工廠違背「開發那個、封閉原則」的缺點,又保持了封裝物件建立過程的特點;缺點在於沒增加乙個新的產品,就要相應增加乙個新的具體工廠類。
第九章 原型模式
使用原型模式,不需要重新初始化物件,就可以動態的複製物件的執行時狀態。
第十章 迪公尺特法則
迪公尺特法則(lod)也叫最少依賴原則:如果兩個類不需要彼此直接通訊,那麼這兩個類就不應當發生直接的相互作用;如果其中乙個類需要呼叫另乙個類的某乙個方法的話,可以通過第三者**這個呼叫。
迪公尺特法則的實質是保證類之間的「低耦合」。
第十五章 抽象工廠
依賴注入(dependency injection)與反射機制
所有使用簡單工廠的地方,都可以考慮使用反射技術來去除switch/case或if這樣的分支語句,消除分支判斷帶來的耦合。
第二十一章 singleton
double-check locking與執行緒安全
第二十五章 中間者模式
儘管將乙個系統分割成多個物件通常增加其可復用性,但是物件將相互連線的激增又會降低其可復用性,這是因為大量連線的存在使得乙個物件無法在缺少其他物件支援的情況下工作,系統表現為乙個不可分割的整體。
中介者模式是「迪公尺特法則」的乙個典型應用,其優點和缺點都源自於集中化控制。
第二十七章 直譯器模式
正規表示式是直譯器模式的典型應用。
第二十八章 訪問者模式
訪問者模式目的是要將操作和資料結構進行分離,它最適合於資料結構較為穩定,而演算法和操作易於變化的系統,因為訪問者模式使得操作的增加變得很容易。
訪問者模式最大的優點在於很容易增加新的操作,只需要增加乙個新的訪問者就可以了。反過來,訪問者模式的缺點在於使得增加新的資料結構變得困難了。
大多數時候你不需要訪問者模式,但是一旦你需要訪問者模式時,那就是真的需要它了。
《互動設計之路》讀書摘要
現在的軟體開發過程是在電腦稀缺時代形成的,開發者更多地考慮如何有效地利用電腦資源,迫使電腦的使用者迎合電腦的行為。計算機科學家alarn karp說 我申請的專利幾乎全是因 顯而易見 而被駁回 不能用與引發問題相同的思維方式去解決問題,1 一些看待問題的新方法 2 一些有效的指導原則 3 一些有效的...
《贏》讀書摘要01
使命和價值觀 使命 使命主要描述乙個問題,我們的業務如何才能贏?它要求公司在人員 資金以及其他資源等方面做出取捨 選擇,避免自己陷入盲目的出擊的陷阱中。它讓企業明白自己的優勢和劣勢,明白自己能夠在哪種競爭中贏得遊戲 有效的使命總是在可能的目標和不可能的目標之間尋求的一種平衡。它既要給大家清晰地方向,...
Rework的讀書摘要
rework 2.learning from mistakes is overrated 從錯誤中學到的東西被高估了 3.planning is guessing 計畫是幻想 takedown 準備 5.why grow?6.workaholism 工作狂?7.enough with entrepr...