1物件導向程式設計因為其具有豐富的特性(封裝、抽象、繼承、多型),可以實現很多複雜的設計思路,是很多設計原則、設計模式編碼實現的基礎。
1 物件導向的四大特性:封裝、抽象、繼承、多型
2 物件導向程式設計與面向過程程式設計的區別和聯絡
3 物件導向分析、物件導向設計、物件導向程式設計
4 介面和抽象類的區別以及各自的應用場景
5 基於介面而非實現程式設計的設計思想
6 多用組合少用繼承的設計思想
7 面向過程的貧血模型和物件導向的充血模型
1 solid 原則 -srp 單一職責原則
2 solid 原則 -ocp 開閉原則
3 solid 原則 -lsp 裡式替換原則
4 solid 原則 -isp 介面隔離原則
5 solid 原則 -dip 依賴倒置原則
6 dry 原則、kiss 原則、yagni 原則、lod 法則
23 種經典的設計模式
三大類:建立型、結構型、行為型
建立型常用的有:單例模式、工廠模式(工廠方法和抽象工廠)、建造者模式。
不常用的有:原型模式。
結構型常用的有:**模式、橋接模式、裝飾者模式、介面卡模式。
不常用的有:門面模式、組合模式、享元模式。
行為型常用的有:觀察者模式、模板模式、策略模式、職責鏈模式、迭代器模式、狀態模式。
不常用的有:訪問者模式、備忘錄模式、命令模式、直譯器模式、中介模式。
對於重構這部分內容
以下幾個知識點:重構的目的(why)、物件(what)、時機(when)、方法(how);
保證重構不出錯的技術手段:單元測試和**的可測試性;
兩種不同規模的重構:大重構(大規模高層次)和小重構(小規模低層次)。
1 物件導向程式設計因為其具有豐富的特性(封裝、抽象、繼承、多型),可以實現很多複雜的設計思路,是很多設計原則、設計模式等編碼實現的基礎。
2 設計原則是指導我們**設計的一些經驗總結,對於某些場景下,是否應該應用某種設計模式,具有指導意義。比如,「開閉原則」是很多設計模式(策略、模板等)的指導原則。
3 設計模式是針對軟體開發中經常遇到的一些設計問題,總結出來的一套解決方案或者設計思路。應用設計模式的主要目的是提高**的可擴充套件性。從抽象程度上來講,設計原則比設計模式更抽象。設計模式更加具體、更加可執行。
4 程式設計規範主要解決的是**的可讀性問題。編碼規範相對於設計原則、設計模式,更加具體、更加偏重**細節、更加能落地。持續的小重構依賴的理論基礎主要就是程式設計規範。
5 重構作為保持**質量不下降的有效手段,利用的就是物件導向、設計原則、設計模式、編碼規範這些理論。
設計模式 物件導向設計原則
軟體的可維護性和可複製性是兩個非常重要的軟體質量屬性 物件導向物件設計原則是設計模式學習的基礎。每乙個設計模式都符合乙個或者多個物件導向設計原則 單一職責原則是最簡單的物件導向設計原則,它用於控制類的粒度大小 單一設計原則 乙個物件應該只包含單一的職責,並且該職責被完整的封裝在乙個類裡 這也意味著 ...
設計模式 物件導向設計原則
物件導向設計原則為支援可維護性復用而誕生,這些原則蘊含在很多設計模式中,它們是從許多設計方案中總結出的指導性原則。最常見的7種物件導向設計原則如下表所示 使用頻率 單一職責原則 single responsibility principle,srp 乙個類只負責乙個功能領域中的相應職責 開閉原則 o...
設計模式 物件導向設計原則
世界是具體的,認知是抽象的。像自然界中的生物 植物 動物乙個個名詞,就是對一系列具體個體抽象出來的稱謂,而魚 老虎 樹等就是乙個個實在的具體。哦,也許你會說,樹也是對一系列具體個體的抽象出來的稱謂,對也不對,對是因為樹確實是一系列具體個體的抽象稱謂,不對是因為照這個邏輯下去,就會陷入死迴圈,直到小到...