今天記錄設計模式中的物件導向設計原則概述:
軟體的可維護性和可復用性
軟體的復用(reuse)或重用擁有眾多優點,如可以提高軟體的開發效率,提高軟體質量,節約開發成本,恰當的復用還可以改善系統的可維護性。
物件導向設計復用的目標是實現支援可維護性的復用。
在物件導向的設計裡面,可維護性復用都是以物件導向設計原則為基礎的,這些設計原則首先都是復用的原則,遵循這些設計原則可以有效地提高系統的復用性,同時提高系統的可維護性。
軟體的可維護性和可復用性
物件導向設計原則和設計模式也是對系統進行合理重構的指南針,重構(refactoring)是在不改變軟體現有功能的基礎上,通過調整程式**改善軟體的質量、效能,使其程式的設計模式和架構更趨合理,提高軟體的擴充套件性和維護性。
今天介紹一下其中的原則:
單一職責原則分析
乙個類(或者大到模組,小到方法)承擔的職責越多,它被復用的可能性越小,而且如果乙個類承擔的職責過多,就相當於將這些職責耦合在一起,當其中乙個職責變化時,可能會影響其他職責的運作。
類的職責主要包括兩個方面:資料職責和行為職責,資料職責通過其屬性來體現,而行為職責通過其方法來體現。
單一職責原則是實現高內聚、低耦合的指導方針,在很多**重構手法中都能找到它的存在,它是最簡單但又最難運用的原則,需要設計人員發現類的不同職責並將其分離,而發現類的多重職責需要設計人員具有較強的分析設計能力和相關重構經驗。
開閉原則定義
開閉原則(open-closed principle, ocp)定義如下:
乙個軟體實體應當對擴充套件開放,對修改關閉。也就是說在設計乙個模組的時候,應當使這個模組可以在不被修改的前提下被擴充套件,即實現在不修改源**的情況下改變這個模組的行為。
黎克特制代換原則定義
黎克特制代換原則(liskov substitution principle, lsp)有兩種定義方式,第一種定義方式相對嚴格,其定義如下:
如果對每乙個型別為s的物件o1,都有型別為t的物件o2,使得以t定義的所有程式p在所有的物件o1都代換成o2時,程式p的行為沒有變化,那麼型別s是型別t的子型別。
12 10每日部落格
今天記錄一下我在使用layui元件中的 的時候遇到的問題,就是如何將mysql讀取到的資料顯示在 元件中的url指向的就可以是後台的servlet,然後servlet向前臺傳遞的是乙個json資料,並且要按照官網中的案例進行返回,不然前台的介面無法載入資料並且會提示介面異常。這裡的json是 net...
12 9每日部落格
首先給資料集名稱那一列 新增點選事件 然後呼叫乙個js方法,這個方法中包含layui元件中的彈出視窗的方法 function showthisdatatab name,size 然後我的思路是將這個資料集的名稱或者id傳遞給要開啟的那個html網頁,在那個網頁中在呼叫乙個資料 請求後台並得到資料庫的...
11 29每日部落格
mapreduce例項 reduce端join 在reudce端進行join連線是mapreduce框架進行表之間join操作最為常見的模式。1.reduce端join實現原理 1 map端的主要工作,為來自不同表 檔案 的key value對打標籤以區別不同 的記錄。然後用連線字段作為key,其餘...