<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    軟件設計原則

    Posted on 2011-01-28 22:00 Wesley Xie 閱讀(1106) 評論(0)  編輯  收藏 所屬分類: 設計相關

    已經有很多人寫過類似的文章了,不過我還是想記錄下來,最近對設計原則的理解,哪天回頭觀看,也有點印象:

     

    單一職責原則:

          就一個類而言、應該僅有一個引起它變化的原因。 這句話的意思是說,如果有多種不同類型的需求改變了,都需要對該類進行改變,那么這個類就違背了單一職責原則,這個度非常難把握,個人感覺很多時候,單一職責原則比較滯后,大部分情況下都是在需求變更的時候,才發現這個某些類單一職責原則沒有太好落實,因此才去做的重構,其實發生這個情況的原因,個人感覺主要是在做設計的時候,還是功夫做得太少,如果能在紙上多畫畫,應該效果會更好。

          軟件設計真正要做的許多內容,就是發現職責并把那些職責相互分離----如果你能夠想到多于一個的動機去改變一個類,那么這個類就具有多于一個的職責。

     

    開放-關閉原則

          對于擴展是開放的,對于更改是封閉的。

          怎樣的設計才能面對需求的改變卻可以保持相對穩定,從而使得系統可以在第一個版本以后不斷推出新的版本呢?

          無論模塊是多么的‘封閉’,都會存在一些無法對之封閉的變化。既然不可能完全封閉,設計人員必須對于他設計的模塊應該對哪種變化封閉做出選擇。他必須先猜測出最有可能發生的變化種類,然后構造抽象來隔離那些變化。

          在我們最初編寫代碼時,假設變化不會發生。當變化發生時,我們就創造抽象來隔離里后發生的同類變化。

          面對需求,對程序的改動是通過增加新代碼進行的,而不是更改現有的代碼。這就是開放-關閉原則的精神所在。 我們希望的是在開發工作展開不就就知道可能發生的變化。查明可能發生的變化所等待的時間越長,要創建正確的抽象就越困難。

            開放-關閉原則是面向對象設計的核心所在。遵循這個原則可以帶來面向對象技術所聲稱的巨大好處,也就是可維護、可擴展、可復用、靈活性好。開發人員應該僅針對程序中呈現出頻繁變化的那些部分做出抽象,然而,對于應用程序中的每個部分都刻意地進行抽象同樣不是一個好主意。拒絕不成熟的抽象和抽象本身一樣重要。

     

    依賴倒轉原則

          針對接口編程,而不要對實現編程:

                A. 高層模塊不應該依賴低層模塊,兩個應該都依賴抽象。

                B. 抽象不應該依賴細節,細節應該依賴抽象。

     

          以上都是根據書上所寫,但個人在這里有些需要說明的,依賴倒轉原則與前面所講的原則都是一樣,不要將所有的地方,都寫成是對接口編程,那樣相當于是過度抽象,其實對整個軟件設計并沒有任何好處。一句話概括:只有當需要的時候,再進行抽象,這也是敏捷所描述的精神。

     

    里氏代換原則

          一個軟件實體如果使用的是一個父類的話,那么一定適用于其子類,而且它察覺不出父類對象和子類對象的區別。也就是說,在軟件里面,把父類都替換成它的子類,程序的行為沒有變化。簡單地說,子類型必須能夠替換掉它們的父類型。

          只有當子類可以替換掉父類,軟件單位的功能不受到影響時,父類才能真正被復用,而子類也能夠在父類的基礎上增加新的行為。


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 日韩一区二区三区免费体验| 亚洲精品免费在线观看| 日韩免费观看的一级毛片| 亚洲ts人妖网站| 免费做爰猛烈吃奶摸视频在线观看| 亚洲视频一区二区在线观看| 永久黄色免费网站| 亚洲人成网站18禁止久久影院 | 麻豆91免费视频| 国产a级特黄的片子视频免费| 亚洲av无一区二区三区| 国产又大又长又粗又硬的免费视频| 亚洲熟妇无码av另类vr影视| 日本精品人妻无码免费大全| 亚洲成a∨人片在无码2023| 国产精品久久久久影院免费| g0g0人体全免费高清大胆视频| 国产成人精品久久亚洲| 美女视频黄的免费视频网页| 亚洲精品欧洲精品| 波多野结衣久久高清免费| 一级毛片试看60分钟免费播放| 亚洲人成中文字幕在线观看| 久久国产高潮流白浆免费观看| 亚洲人成免费网站| 亚洲成?Ⅴ人在线观看无码| 免费毛片在线看不用播放器| 亚洲成aⅴ人片在线影院八| 手机看片久久国产免费| 国产精品小视频免费无限app | 97在线观免费视频观看| 国产精品亚洲片在线花蝴蝶| 亚洲国产婷婷六月丁香| 97免费人妻无码视频| 一级特级aaaa毛片免费观看 | 久久99精品免费视频| 亚洲人成自拍网站在线观看| 美腿丝袜亚洲综合| 国产卡一卡二卡三免费入口| 九九九精品视频免费| 亚洲偷自精品三十六区|