Head First summary
學習面向對象好幾年了,但一直沒有深刻的理解面向對象,直到最近開始做自動化測試平臺開發過程中,才發現面向對象的魅力。因而決定好好把設計模式學習下。首先先了解下設計模式相關的定義以及主意事項:
1. 什么是設計模式:
描述了軟件設計過程中某一類常見問題的一般性的解決方案。
2. 面向對象設計模式:
?? 描述了面向對象設計過程中、特定場景下、類與相互通信的對象之間常見的組織關系。
?
經典設計模式種類總共有23種(有點多),但是他們的設計都貌似都是圍繞著面向對象三大機制展開的(急待求證),即: 封裝、繼承、多態。
– 封裝,隱藏內部實現
– 繼承,復用現有代碼
– 多態,改寫對象行為
?
從設計原則到設計模式的幾點總結:
1. 針對接口編程,而不是針對實現編程
– 客戶無需知道所使用對象的特定類型,只需要知道對象擁有客戶所期望的接口。
2. 優先使用對象組合,而不是類繼承
????? – 類繼承通常為“白箱復用”,對象組合通常為“黑箱復用”。繼承在某種程度上破壞了封裝性,子類父類耦合度高;而對象組合則只要求被組合的對象具有良好定義的接口,耦合度低。
3. 封裝變化點
?? – 使用封裝來創建對象之間的分界層,讓設計者可以在分界層的一側進行修改,而不會對另一側產生不良的影響,從而實現層次間的松耦合。
?
設計模式幾點更具體的設計原則:
1. ?單一職責原則(SRP):
– 一個類應該僅有一個引起它變化的原因。
[理解]:盡量一個類實現一種行為習慣,比如說不要讓一個類既干這個又干那個。
2. 開放封閉原則(OCP):
– 類模塊應該是可擴展的,但是不可修改(對擴展開放,對更改封閉)
[理解]:盡量擴展類方法,而不要去修改一個類方法,比如說修改類方法類型,因為一旦修改,導致引用地方都必須修改。擴展新方法可以滿足新需求。
3. Liskov 替換原則(LSP):
– 子類必須能夠替換它們的基類
4. 依賴倒置原則(DIP):
– 高層模塊不應該依賴于低層模塊,二者都應該依賴于抽象。
– 抽象不應該依賴于實現細節,實現細節應該依賴于抽象。
[理解]:高層盡量都已乃抽象,與細節無關,這樣修改拓展新方法時不會影響到高層功能。
5. 接口隔離原則(ISP):
– 不應該強迫客戶程序依賴于它們不用的方法。
剛開始看設計模式,以上一些原則和總結理解不是很深刻,希望能在以后具體設計模式方法中能夠得到加強,有助于對面向對象的深入理解和設計開發有一定幫助,為能開發出好用易擴展的測試框架和工具打一點基礎。
轉載于:https://www.cnblogs.com/Blackeye286/p/3324653.html
總結
以上是生活随笔為你收集整理的Head First summary的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ASP.NET会员注册登录模块(MD5加
- 下一篇: Xcode模拟器和真机生成的日志查看(i