軟體實體 (類、模組、函式等) 應該可以擴充套件 , 但是不可修改。軟體開發中,前期通過需求分析、建模,巧妙利用設計模式 使系統盡可能的易維護、易拓展、健壯 。當需求變化時能夠方便的對原有系統進行擴充套件(新增模組、新增方法) 而不是為了滿足需求 直接在原有**上進行改動。俗稱 : 對於拓展是開放的,對於修改是關閉的
就乙個類而言,應該僅有乙個引起它變化的原因。描述的意思是每個類都只負責單一的功能,切不可太多,並且乙個類應當盡量的把乙個功能做到極致。
如果兩個類不必彼此通訊,那麼這兩個類就不應當發生直接的相互作用。我們在設計類的時候,應當盡量降低類成員的訪問許可權,將細節全部高內聚於類的內部,不要漏出來給其他類知道(呼叫),其他的類只需要知道這個類提供的公共方法即可,已達到松耦合效果如果其中乙個類需要呼叫另乙個類的某乙個方法的話,可以通過第三者**這個呼叫
也稱介面最小化原則,強調的是乙個介面擁有的行為應該盡可能的小。如果做不到這一點就會發現,乙個類實現了乙個介面,需要實現裡面所有的方法,但是並不是所有方法都應該實現 那麼裡面就會有很多方法是空著的。這樣會給使用者造成假象,即這個實現類擁有介面中所有的行為,結果呼叫方法時卻沒收穫到想要的結果。
乙個軟體實體如果使用的是乙個父類的話,那麼一定適用於其子類,而且它察覺不出父類物件和子類物件的區別。這個原則表達的意思就是,子類一般不該重寫父類的方法,因為父類的方法一般都是對外公布的介面,是具有不可變性的,你不該將一些不該變化的東西給修改掉。即在程式中,把父類都替換成它的子類,程式的行為沒有變化。
但是好多設計模式 都明顯違背了這一原則 …
抽象不應該依賴細節,細節應該依賴於抽象意思就是當程式設計之初 應盡可能的把功能事務進行提取抽象,把共有的、通用的提取出來封裝成 介面或抽象類 讓具體的實現類去繼承。針對介面(抽象類)程式設計,不要對實現程式設計
設計模式之六大基本原則
要開始做個人版機房了,我又重新拿起了設計模式。今天我想說說六大基本原則。包括 單一職責,開放封閉原則,依賴倒轉原則,黎克特制代換原則,迪公尺特法則,合成 聚合復用原則。單一職責 總結 就像只有畫素能夠決定相機質量一樣,音訊改變 機的品質的好壞一樣,單一職責就是只有乙個因素改變他。開發 封閉原則 軟體...
設計模式之六大基本原則
單一職責原則的本質就是要將乙個複雜的邏輯拆分成多個簡單的邏輯,以此來降低複雜度。黎克特制代換原則的核心 父親能做的孩子都能做,孩子能做的父親不能做,降低耦合度 開閉原則的核心 對修改關閉,對擴充套件開發,依次來減少耦合度。依賴倒置原則的核心 讓原來相互依賴的兩個核心模組,變為同時依賴於另乙個非核心模...
java開發設計六大基本原則
設計模式的六大原則 總原則 開閉原則 對擴充套件開放,對修改封閉。在程式需要進行拓展的時候,不能去修改原有的 而是要擴充套件原有 實現乙個熱插拔的效果。所以一句話概括就是 為了使程式的擴充套件性好,易於維護和公升級。想要達到這樣的效果,我們需要使用介面和抽象類等,後面的具體設計中我們會提到這點。1 ...