除了類本身,設計模式更強調多個類/物件之間的關係和互動過程——比介面/類復用的粒度更大
設計模式分類:建立型模式、結構型模式、行為類模式
adapter模式(介面卡模式):
將某個類/介面轉換為client期望的其他形式
解決類之間介面不相容的問題
通過增加乙個介面,將已存在的子類封裝起來,client面向介面程式設計,從而隱藏了具體子類
decorator設計模式(裝飾器模式):
為物件增加不同側面的特性
對每乙個特性構造子類,通過委派機制增加到物件上
以遞迴的方式實現
介面:定義裝飾物執行的公共操作
起始物件,在其基礎上增加功能(裝飾),將通用的方法放到此物件中
facade模式(外觀模式):
客戶端需要通過乙個簡化的介面來訪問複雜系統內的功能
提供乙個統一的介面來取代一系列小介面呼叫,相當於對複雜的系統做了乙個封裝,簡化客戶端使用
便於客戶端學習使用,解耦
strategy pattern模式(策略模式):
有多種不同的演算法來實現同乙個任務,但需要client根據需要同態切換演算法,而不是寫死在**裡
template method模式(模板模式):
做事情的步驟一樣,但具體方法不同
共性的步驟在抽象類內公共實現,差異化的步驟在各個子類中實現
iterator pattern模式(迭代器模式):
客戶端希望遍歷被放入容器/集合的一組adt物件,無需關心容器的具體型別
也就是說,不管物件被放進**,都應該提供同樣的遍歷方式
2020 03 04軟體構造聽課筆記
以下為2020年3月4日的軟體構造聽課中記錄的知識點 測試是負能量的表現 破壞 證錯 再好的此時也無法證明系統裡不存在錯誤 乙個好的測試的特徵 1.能發現錯誤 2.不冗餘 3.最佳特性最佳方案 4.不太複雜也不太簡單 靜態測試 不執行程式,只分析 動態測試 執行程式,輸入測試用例,檢測是否有問題 測...
2020 05 13軟體構造聽課筆記
正確性 程式按照spec加以執行的能力,是最重要的質量指標 正確性 永不給使用者錯誤的結果 健壯性 盡可能保持軟體執行而不是總是退出 健壯性 避免給使用者太大壓力,幫助使用者承擔一些麻煩 可靠性 健壯性 正確性 異常 程式執行中的非正常時間,導致程式無法再按預想的流程執行 exception將錯誤資...
2020 05 15軟體構造聽課筆記
對於可恢復 期望恢復的情況,丟擲checked異常 對於程式出錯 不確定是否可恢復,丟擲unchecked異常 盡可能在checked異常中提供方法和豐富的資訊,以便協助恢復 不建議宣告error型別異常 不建議宣告runtimeexception型別的異常 方法要在定義和spec中明確宣告所丟擲的...