設計模式--原則

1.單一職責原則

           簡單總結:就一個類而言,應該只有一個引起它變化的原因,一個類中承擔的職責不宜多

                        如果 承擔的職責越多,可複用性越差 

                           承擔的職責越多,各職責間耦合性越強,修改一個職責,都有影響到其它職的風險        

               是實現高內聚、低耦合的指導方針,它是最簡單但又最難運用的原則    


              2.開閉原則

           簡單總結:一個軟件實體應該對擴展開放,對修改關閉。在不修改原有代碼的情況下進行擴展

                  把系統定義成一個相對穩定的抽象層,將不同行爲移至具體的實現層中完成。

                 使軟件具有較好的穩定性和可延續性。

           抽象化是開閉原則的關鍵


           3.里氏替換原則

         簡單總結:所有引用基類的地方必須能透明地使用其子類的對象

                     在軟件中將一個基類對象替換成它的子類對象,程序將不會產生任何錯誤和異常,反過來則不成立

                  在程序中經量使用基類對對象進行定義,而在運行時再確定其子類型,用子類對象來替換父類對象

           里氏代換原則是開閉原則的具體實現手段之一

  

        4.依賴倒置原則

         簡單總結:抽象不應該依賴於細節,細節應當依賴於抽象。要對接口編程,而不是針對實現編程。

                    使用接口和抽象類進行變量類型聲明,參數類型聲明,方法返回類型聲明,以及數據類型的轉換。而不用具體類來做這些事情。

                    針對抽象層編程,將具體類對象通過依賴注入的方式注入其它對象中(構造注入,設置注入(set方法),接口注入)

         開閉原則是目標,里氏代換原則是基礎,依賴倒轉原則是手段


       5.接口隔離原則

        簡單總結:使用多個專門的接口,而不使用單一的總接口,客戶端不應該依賴於它不需要的接口

                     每個接口是一個獨立的較少,不幹不該乾的事,該乾的都得幹

                     給客戶端提供儘可能小的 接口,而不要提供大的總接口,僅僅提供客戶需要的行爲 

         需要注意控制接口的粒度,接口不能太小,如果太小會導致系統中接口氾濫,不利於維護;接口也不能太大,太大的接口將違背接口隔離原則,靈活性較差,使用起來很不方便


       6.合成複用原則

       簡單總結:儘量使用對象組合,而不是繼承來達到複用的目的


      7.迪米特法則

      簡單總結:一個對象應當對其他對象有儘可能少的瞭解

                       一個類應該對自己需要耦合或調用的類知道得最少,不關心被耦合或調用的類的內部實現,只負責調用你提供的方法

                       不要和“陌生人”說話只與你的直接朋友通信----朋友指

  (1) 當前對象本身(this)

             (2) 以參數形式傳入到當前對象方法中的對象;

              (3) 當前對象的成員對象;

                        (4) 如果當前對象的成員對象是一個集合,那麼集合中的元素也都是朋友;

                        (5) 當前對象所創建的對象

    在類的結構設計上,每一個類都應當儘量降低其成員變量和成員函數的訪問權限

     在類的設計上,只要有可能,一個類型應當設計成不變類

     在對其他類的引用上,一個對象對其他對象的引用應當降到最低



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章