對於個人而言:無外乎使自己的**高內聚低耦合、冗餘低、可復用,開發效率高,別人用半個小時寫完的東西,
你十分鐘就搞定。(公升職加薪)
對於公司架構而言:縮短開發周期,可維護性強,可擴充套件性強。(概括一句話就是使用最少的錢,得到最優質的產品。)
提高軟體系統的可維護性和可復用性,增加軟體的可擴充套件性和靈活性,從而提高軟體開發效率、節約軟體開發成本和維護成本。-----------引用於 《c語言中文網-24種設計模式》
開閉原則:
定義:當需求改變時,對原有**擴充套件開放,對原有**修改關閉
個人理解:目前已有普通同學類 ,但需要新建班長,班長除了具有普通同學的功能外還具有點名功能,建立班長不能
直接在普通同學裡新增點名功能,因為普通同學不具有點名功能,而是需要新建乙個班長類繼承於普通同學類,
並新增點名功能。
依賴倒置原則
定義:底層模組依賴高層模組,實現類依賴於抽象類或介面
個人理解:具體的類依賴於抽象的類,比如 鳥類 繼承 飛禽類,飛禽類 實現動物介面,不能顛倒過來。
單一職責原則:
定義:單一職責原則規定乙個類應該有且僅有乙個引起它變化的原因
個人理解 : 大學中 專業教師只負責教學生專業知識,輔導教師只負責學生日常生活管理,不能用乙個教師類實現
教學生專業知識 和 學生日常管理 兩個功能
介面隔離原則:
定義:介面只保留其實現類所需要的功能,不要強迫其實現類去實現他用不到的功能
個人理解:介面隔離原則與單一職責相似,區別於介面隔離原則應用與介面不同功能分離,而單一職責原則應用
於實現類不同功能分離
黎克特制替換原則:
定義:當子類繼承父類時,不能修改父類方法,如有需求應該新增對應方法
個人理解:既然子類繼承了父類,那麼子類便擁有其父類的所有功能,子類的物件能夠代替其父類的物件完成
同樣的功能。
迪公尺特法則:
定義:只與你的直接朋友交談,不跟「陌生人」說話
個人理解:例如 a 和 b 是朋友,b 和 c是朋友, b 和 d 是朋友,c 擁有《spring5》,d 擁有《netty》。a想看
《spring5》則只需要向b借就可以了,b去和c借書,而不需要 a 新增 c 去向 c 借書(人家也不認識你呀)
,同理 a 想看《netty》 也只需向 b 借就可以了。
合成復用原則:
定義:求在軟體復用時,要盡量先使用組合或者聚合等關聯關係來實現,其次才考慮使用繼承關係來實現。
個人理解:已有乙個 手機類 和乙個顏色類,a 想要 紅色的手機,, c想要乙個白色的手機,d想要乙個紫色手機,
我們只需要給每個手機賦予對應顏色就行了而不需要新建紅色的手機類,白色的手機類。。
日常編碼中,設計原則應適度引用,如果刻意使用設計原則,可能會適得其反。例如 使用開閉原則,如果功能
一直增加那麼便一直增加這個類的子類,這樣便造成了**臃腫的狀況。
七大軟體設計原則
定義 乙個軟體實體如類 模組和函式應該對擴充套件開放,對修改關閉。用抽象構建框架,用實現擴充套件細節。優點 提高軟體系統的可復用性及可維護性 我的理解 原來的程式功能不能夠去改變,如果要修改一些資料,就繼承這個類對其進行修改。不能修改原來的 如果修改可能會造成其他引用這個類的功能出現錯誤。定義 高層...
七大軟體設計原則
1 開閉原則定義 乙個軟體實體,如類 模組和函式應該對擴充套件開放,對修改關閉用抽象構建框架,用實現擴充套件細節 優點 提高軟體系統的可復用性及可維護性 核心就是物件導向程式設計,我們盡量進行擴充套件,而不是去修改。2 依賴倒置原則定義 定義 高層模組不應該依賴底層模組,二者都應該依賴其抽象,抽象不...
軟體設計七大原則
軟體設計的七大原則 設計模式遵循的一般原則 1.開 閉原則 open closed principle,ocp 乙個軟體實體應當對擴充套件開發,對修改關閉.說的是,再設計乙個模組的時候,應當使這個模組可以在不被修改的前提下被擴充套件.換言之,應當可以在不必修改源 的情況下改變這個模組的行為,在保持系...