1. <tt id="5hhch"><source id="5hhch"></source></tt>
    1. <xmp id="5hhch"></xmp>

  2. <xmp id="5hhch"><rt id="5hhch"></rt></xmp>

    <rp id="5hhch"></rp>
        <dfn id="5hhch"></dfn>

      1. 淺談設計模式及如何選擇設計模式

        時間:2024-06-19 17:13:13 論文范文 我要投稿

        淺談設計模式及如何選擇設計模式

          摘 要:針對當前軟件行業普遍借鑒的設計模式,提出了如何選擇設計模式,討論了設計原則。

          關鍵詞:設計模式;設計原則;設計模式的選擇

          設計模式是面向對象技術的最新進展之一,它針對不斷重復出現的問題,能夠復用已有的、優秀的解決方案,因此提高了軟件開發質量和代碼重用性。

          1、設計模式概念

          設計模式是“對一些經過定制、能相互通信的對象和類的描述,用來解決特定場景下某個普遍的設計問題!盙OF經典設計模式使用類圖、對象圖、交互圖等顯示類與對象之間的關系和通信。其中類圖用來描述各個類、類的結構以及它們之間的關系,對象圖描述對象結構,而交互圖描述的是對象間產生關系的流程。

          設計模式種類眾多,在GOF經典設計模式中,達23種之多,設計模式分類主要是根據目的準則和范圍準則。目的準則說明模式是用來完成什么工作的,根據目的準則,模式可分為三種:(1)創建型:設計模式與對象創建無關,把對象的創建和其它部分的代碼分離,從而創建對象會更加靈活。例如設計模式中的簡單工廠模式,工廠方法模式,抽象工廠模式,創建者模式,原型模式,單例模式;(2)結構型:模式結構清晰,主要處理類或對象的組合,但是模式的每一部分的結構都專門負責完成某一職責。例如設計模式中的外觀模式,適配器模式,代理模式,裝飾模式,橋模式,組合模式,享元模式;(3)行為型:行為類模式主要描述類或對象之間的交互,以及類和對象的主要職責模板方法模式,觀察者模式,狀態模式,策略模式,職責鏈模式,命令模式,訪問者模式,調停者模式,備忘錄模式,迭代器模式,解釋器模式。范圍準則關注模式的制定主要用于類還是對象,其中“類模式”處理類與類之間的繼承關系,這種關系是靜態的,而“對象模式”處理對象之間的關系,這種關系是動態的。設計模式種類繁多,如何選出一個針對特定設計問題的模式是十分困難的。因此選擇適合特定設計問題的設計模式,是人們比較關心的問題。

          2、設計模式的選擇

          設計模式是面向對象的高層次解決方案,它不會過于關注具體問題的細節,所以應該把現實世界中存在的問題進行抽象,設計模式在選擇對象和決定對象粒度方面都能起到作用。

          ⑴選擇合適的對象。設計模式的對象來源于現實世界的抽象模型,針對具體問題描述,進行抽象,創建類和操作。但是在這些分析模型中得到的一些層次較高或較低的類,在現實世界里并不存在,比如數組等,設計模式能夠確定這些在現實世界中找不到的類。

         、茮Q定對象粒度大小。設計模式能夠決定對象的大小和數目,例如,外觀模式能夠使用對象表示完整的子系統,享元模式的對象粒度最小且數目眾多,抽象工廠模式能夠生產其它對象的對象。這些設計模式為對象粒度的選擇提供了一定的依據。每一種設計模式都是為解決一類問題而出現的,例如:橋接(Bridge)模式屬于結構性模式,其意圖是分離抽象部分和實現部分,使這兩部分相互獨立,不會相互影響;解釋器(Interpreter)模式屬于行為模式,它的意圖是給定一個語言及其語法語義,并定義一個解釋器,用來使用這些語法語義表示這個語言的含義;生成器(Builder)模式屬于創建型模式,它的意圖是把復雜對象的構建和它的表示分開,使得同一個創建過程可以含有不同的表示。只有了解了設計模式的意圖,才會比較容易地選擇出,適合實際問題的一個或多個設計模式。

          盡管設計模式在粒度和抽象層次上各不相同,但是它們之間還是具有一些關聯,根據目的和使用范圍不同,對設計模式進行了分類。分類能夠指導應用設計模式的目的和范圍,目的準則中的創建型模式與對象的創建有關,結構性模式關注于類或者對象的組合,行為性模式描述了類或者對象的交互關系和職責分配,范圍準則是以類和對象來劃分的,類模式是研究類與子類之間的靜態關系,而對象模式關注的是對象之間的動態關系。如果確定了業務邏輯的目的和元素,就能縮小設計模式的選擇范圍,能夠快速獲得適合的設計模式或者模式組。

          3、設計原則

         、艈我宦氊熢瓌t,即不能存在多于一個導致類變更的原因。簡單的說就是一個類只負責一項職責。在軟件設計中,秉承著“高內聚,低耦合”的思想,讓一個類僅負責一項職責。

         、评锸咸鎿Q原則,如果對每一個類型為T1的對象o1,都有類型為T2的對象o2,使得以T1定義的所有程序P在所有的對象o1都換成o2時,程序P的行為沒有變化,那么類型T2是類型T1的子類型。包含4層含義:①子類可以實現父類的抽象方法,但是不能覆蓋父類的非抽象方法。②子類可以實現父類的抽象方法,但是不能覆蓋父類的非抽象方法。③當子類覆蓋或實現父類的方法時,方法的前置條件(即方法的形參)要比父類方法的輸入參數更寬松。④當子類覆蓋或實現父類的方法時,方法的前置條件(即方法的形參)要比父類方法的輸入參數更寬松。

         、且蕾嚨怪迷瓌t,高層模塊不應該依賴低層模塊,兩者都應該依賴其抽象,抽象不應該依賴細節,細節應該依賴抽象。

         、冉涌诟綦x原則,接口中的方法應該盡量少,不要使接口過于臃腫,不要有很多不相關的邏輯方法。

          總之,原則是前人經驗的總結,在軟件設計中具有一定的指導作用,但是不能完全照搬這些原則。對于接口隔離原則來說,接口盡量小,但是也要有限度。對接口進行細化可以提高程序設計靈活性是不爭的事實,但是如果過小,則會造成接口數量過多,使設計復雜化,所以一定要適度。

        【淺談設計模式及如何選擇設計模式】相關文章:

        淺談工作室教學模式在環境設計教學中的作用03-07

        論消費者保護的法律選擇模式(上)-歐美模式與中國模式之比較11-20

        藥品實庫存管理模式的設計與應用11-20

        藝術設計專業中實踐的教學模式11-25

        淺談高職院校實踐教學模式改革12-12

        淺談問題探究教學模式中的“問”12-01

        淺談語文研究性學習模式12-06

        淺談中國當代的汽車營銷模式12-11

        淺談網絡環境下數據庫及應用課程教學模式選擇與實踐12-04

        信息化教育的教學模式與教學設計研究11-18

        • 相關推薦
        国产高潮无套免费视频_久久九九兔免费精品6_99精品热6080YY久久_国产91久久久久久无码

        1. <tt id="5hhch"><source id="5hhch"></source></tt>
          1. <xmp id="5hhch"></xmp>

        2. <xmp id="5hhch"><rt id="5hhch"></rt></xmp>

          <rp id="5hhch"></rp>
              <dfn id="5hhch"></dfn>