設計模式
設計模式(design pattern)是一套被反覆使用、多數人知曉的、經過分類的、**設計經驗的總結。
模式
模式是指從生產經驗和生活經驗中經過抽象和昇華提煉出來的核心知識體系。模式(pattern)其實就是解決某一類問題的方**。
使用設計模式的目的:為了**可重用性、讓**更容易被他人理解、保證**可靠性。 設計模式使**編寫真正工程化;設計模式是軟體工程的基石脈絡,如同大廈的結構一樣。
建立型模式-研究高效的建立物件:單例模式、抽象工廠模式、建造者模式、工廠模式、原型模式
結構型模式-設計物件的結構和關係:介面卡模式、橋接模式、裝飾模式、組合模式、外觀模式、享元模式、**模式
行為型模式-設計物件的行為:模板方法模式,命令模式,迭代器模式,觀察者模式(也叫發布訂閱模式),中介者模式,備忘錄模式,直譯器模式,狀態模式,策略模式,職責鏈模式,訪問者模式
六大原則目的:減少耦合,增強復用性,降低**的開發維護擴充套件成本。
耦合關係:是指某兩個事物之間如果存在一種相互作用、相互影響的關係,那麼這種關係就稱『耦合關係』。
耦合度和複雜度的危害:複雜度高,**質量不高,可維護性差,復用性差,不易擴充套件。耦合度為0不可能 ,耦合度低合理,過高不容易維護且復用性和擴充套件性差。
單一職責原則 single responsibility principle:乙個方法只做一件事情。比如請求資料的函式你就不要渲染資料了
開閉原則 ocp:乙個軟體實體如類、模組和函式應該對擴充套件開放,對修改關閉;面向擴充套件開放,面向修改關閉,同時增強**復用性。如 jquery extend
黎克特制代換原則 l subsituation principle: 任何基類可以出現的地方,子類一定可以出現。通俗的來講就是:子類可以擴充套件父類的功能,但不能改變父類原有的功能。乙個父類可以訪問的介面,父類忙著其他事情,子類可以代替父類去訪問。
迪公尺特法則 (最小知道原則)ld:乙個介面和乙個方法,傳入的引數越少越好。降低耦合度的同時也會讓複雜程度降低。形成的關聯越少越好、依賴最少。
依賴倒置原則 dip:最常用的原則,依賴介面,不依賴方法,底層的東西不用了解,我們只需知道表現就可以,降低耦合度;前端應用中可以理解成多者之間依賴狀態,而不依賴彼此。js中沒有介面的概念
介面分離原則 isp:把大介面拆分小介面,不能乙個介面全部實現增刪改查
模式和原則的關係:原則是理論,模式是在理論上的具體方式
開發時使用原則的流程:優先降低複雜度,盡量降低耦合度
1.利用單一職責原則,開閉原則,黎克特制代換原則降低複雜度。
2.通過迪公尺特法則減少耦合度
3.通過依賴倒置原則消除可以沒有的耦合
UML總體概述
uml是一種物件導向的建模技術。以物件導向的開發方法為基礎,從系統的各個角度思考問題,畫出10種圖。在學習uml建模中,主要學習了10種圖包括 用例圖,類圖,物件圖,包圖,時序圖,活 協作圖,狀態圖,構件圖,部署圖。用例圖 用例圖是主要描述系統使用者和系統功能的模型圖,表達出什麼人使用什麼功能。主要...
設計模式 總體認識
前言 如果把進行專案研發比作成數學題的計算的話,那麼程式設計就像是計算,而設計模式的使用就像是化簡!不同的題可能適合不同的化簡方式,通過化簡,題目會變得更加容易而正確率也會大大提高。由此可見設計模式的重要性。但是我們千萬不能由此而忽略了程式設計的重要性!比如,一道題過來,如果你的計算能力不夠,你就是...
設計模式概述
什麼是設計模式?通常會有以下幾個定義 設計模式描述了軟體設計過程中某一類常見問題的一般性解決方案。物件導向設計模式描述了物件導向設計過程中,特定場景下,類與相互通訊的物件之間常見的組織關係。每乙個模式描述了乙個在我們周圍不斷重 生的問題,以及該問題的解決方案的核心。這樣,你就能一次又一次的使用該方案...