設計模式六大原則
概念:設計模式是一套被反覆使用的、多數人知曉、經過分類編目的優秀**設計經驗的總結。特定環境下特定問題的處理方法。
1)重用設計和** 重用設計比重用**更有意義,自動帶來**重用
2)提高擴充套件性 大量使用面向介面程式設計,預留擴充套件插槽,新的功能或特性很容易加入到系統中來
3)提高靈活性 通過組合提高靈活性,可允許**修改平穩發生,對一處修改不會波及到其他模組
4) 提高開發效率 正確使用設計模式,可以節省大量的時間
1.單一原則(single responsibility principle):乙個類或者乙個方法只負責一項職責,盡量做到類的只有乙個行為原因引起變化;
a、業務物件(bo business object)、業務邏輯(bl business logic)拆分;
2.黎克特制替換原則(lsp liskov substitution principle):子類可以擴充套件父類的功能,但不能改變原有父類的功能;(本質其實就是c++的多型)
(目的:增強程式的健壯性)實際專案中,每個子類對應不同的業務含義,使父類作為引數,傳遞不同的子類完成不同的業務邏輯。
3.依賴倒置原則(dependence inversion principle):面向介面程式設計;(通過介面作為引數實現應用場景)
抽象就是介面或者抽象類,細節就是實現類
含義:上層模組不應該依賴下層模組,兩者應依賴其抽象;
抽象不應該依賴細節,細節應該依賴抽象;
通俗點就是說變數或者傳引數,盡量使用抽象類,或者介面;
【介面負責定義public屬性和方法,並且申明與其他物件依賴關係,抽象類負責公共構造部分的實現,實現類準確的實現業務邏輯】
4.介面隔離(inte***ce segregation principle):建立單一介面;(擴充套件為類也是一種介面,一切皆介面)
定義:a.客戶端不應該依賴它不需要的介面;
b.類之間依賴關係應該建立在最小的介面上;
簡單理解:複雜的介面,根據業務拆分成多個簡單介面;(對於有些業務的拆分多看看介面卡的應用)
【介面的設計粒度越小,系統越靈活,但是靈活的同時結構複雜性提高,開發難度也會變大,維護性降低】
5.迪公尺特原則(law of demeter lod):最少知道原則,盡量降低類與類之間的耦合;
乙個物件應該對其他物件有最少的了解
6.開閉原則(open closed principle):用抽象構建架構,用實現擴充套件原則;(總綱)
(solid穩定的 記憶首字母)
什麼是DNS?它的作用又是什麼?
什麼是dns?在使用ip 的時候,會看到設定的地方有這個專用詞出現,但是不知道它代表的是什麼?這樣會對我們使用 ip有影響嗎?理論上,按照指引去設定就可以正常使用,但是多了解一些網路知識也沒有壞處。下面我們來了解dns。dns 是計算機網域名稱系統 domain name system 或 doma...
到底什麼是hash?它起什麼作用?
從emule誕生到現在也已經有了兩年左右時間了,隨著emule的普及,喜歡他的人也越來越多,但是由於emule對技術相應有乙個門檻,不像bt那麼容易上手,所以很多朋友很長時間以來一直都有這樣或那樣的疑問,今天是週末我也獻獻醜,寫一篇關於hash的文章。大家天天都在使用emule,hash這個詞是在e...
設計模式 什麼是設計模式
在 設計模式之禪 一書中,秦小波前輩寫到 它是一套理論,由軟體界的先輩們總結出的一套可以反覆使用的經驗,它可以提高 的可重用性 增強系統的可維護性,以及解決一系列的複雜問題 也就是說,我們開發人員的前輩曾遭遇過相同的問題,也順利地使用各種方案解決過這些問題,然後他們把這些解決方案總結成了經驗,也就是...