• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            posts - 0,  comments - 5,  trackbacks - 0

            1、單一職責

              不論是在設計類,接口還是方法,單一職責都會處處體現(xiàn),單一職責的定義:我們把職責定義為系統(tǒng)變化的原因。所有在定 義類,接口,方法的時候。定義完以后再去想一想是不能多于一個的動機去改變這個類,接口,方法。如果答案是肯定的,說明定義的類,接口,方法則多于一個職 責。故違背單一職責,遇到這種情況應該重新細分職責,直到不會出現(xiàn)多種職責的類,接口方法為止(發(fā)現(xiàn)職責,并把那些職責相互分離)。單一職責的為最簡單的 五種原則之一。在軟件設計的過程中處處體現(xiàn)。無處不在。

            2、開閉原則

              開閉原則是指類、模塊、方法是可以擴展的,但不可以 修改。開即對擴張開放,閉即對修改關閉。開閉原則的應用體現(xiàn)在,開發(fā)人員應該僅僅對程序中頻繁出現(xiàn)變化的地方進行抽象(封裝變化點)。對變化點的封裝即對 變化的修改關閉。對于變化的不確定性,可隨時擴展。即 繼承的使用。抽象類的運用。

            3、替換原則(Is-A)

              替換原則即是總是保證子類可以替換它的基類。

               替換原則的實現(xiàn)。對于一組具有類似屬性,方法,變量的類。我們可以提取公共屬性,方法,變量做為一個基類(抽象類或者類),使這一組類繼承基類,重寫虛 方法。現(xiàn)在這些繼承的類和基類的關系符合Is-A。如基類為鳥,則繼承類可以為麻雀,燕子。我們可以說麻雀Is-A鳥,燕子Is-A鳥。

              在項目中所有使用子類的地方都可用父類替換,但在調(diào)用方法的時候 ,即呈現(xiàn)面向?qū)ο缶幊痰亩鄳B(tài)性。即替換原則,非常重要的原則,也是比較對難的原則。

            4、依賴倒置原則

              a、高層模塊不應該依賴于低層模塊。二者都應該依賴于抽象
              b、抽象不應該依賴于細節(jié)。細節(jié)應該依賴于抽象。

                  在面向過程的開發(fā)語言中分析和設計,總是創(chuàng)建一些高層模塊去調(diào)用低層模塊、策略依賴于細節(jié)的軟件結構。實際上這種方法的目的就是要定義子程序?qū)哟谓Y構,該 結構 描述了高層模塊怎樣調(diào)用低層模塊。而設計良好的面向?qū)ο蟮某绦颍?#8220;倒置”了這種依賴關系。高層模塊不再依賴于低層模塊,從而低層模塊的修改不會影響到 高層模塊,并且高層模塊也是能非常容易的被重用,高層模塊和低層模塊都影響都依賴于抽象。這樣也非常符合強內(nèi)聚松耦合的編程思想。故該原則也是框架設計的 核心原則。
                  使用傳統(tǒng)的過程化程序設計所創(chuàng)建出來的依賴關系結構,策略是依賴于細節(jié)的,這是糟糕的,因為這樣會使策略受到細節(jié)改變的影響,面向?qū)ο蟮某绦蛟O計倒置了依賴關系結構,全程細節(jié)和策略都依賴抽象,并且常常是客戶程序擁有服務接口。
                  事實上,這種依賴關系的倒置正是好的面向?qū)ο笤O計 的標志所在,使用何種語言來編寫程序是無關緊要的。如果程序的依賴關系是倒置的,它就是面向?qū)ο蟮脑O計。如果程序的依賴關系不是倒置的,它就是過程化的設計。
                  依賴倒置原則是實現(xiàn)許多面向?qū)ο蠹夹g所宣稱的好處的基本低層機制。它的正確應用對于創(chuàng)建可重用的框架來說是必需的。同時它對于構建在變化面前富有彈性的代碼也是非常重要的,由于抽象和細節(jié)彼此隔離,所以代碼也非常容易維護。

            5、接口隔離原則

                    應該說該原則是處理現(xiàn)有“胖”接口所存在的缺點。如果類的接口不是內(nèi)聚的,就表示該類具有“胖”接口。換句話說“胖”接口可以分解成多組方法。每一組方法 都服務于一組不同的客戶程序。這樣,量引客戶程序可以使用一組成員函數(shù),而其他客戶程序可以使用其他組的成員函數(shù)。

                    接口隔離的方法有兩種(分享客戶就是分離接口):

                           1、使用委托(此委托非.net委托[delegate])分離接口

                   使用委托即,創(chuàng)建一個委托類,用此類去實現(xiàn)分離后的其它接口中的方法。

                           2、使用多重繼承分離接口、

                    此方法,即將現(xiàn)有“胖”接口分成供不同客戶程序調(diào)用的兩個或多個接口,而需要實現(xiàn)多個接口的客戶程序,則使用多重繼承來實現(xiàn)。

                這兩種方法是實現(xiàn)接口隔離的全部方法,其中第二種方法使用較普遍,也比較簡單。而第一種方法使用起來相對比較復雜,而且在使用委托的過程中也會產(chǎn)生重 復的對象,則占用運行時間和內(nèi)存開銷。有的時候第二種方法是必須的,第一種方法是不能使用的。如:利用委托對象所做的轉(zhuǎn)換是必需的,或者不同的時候會需要 不同的轉(zhuǎn)換。

            posted on 2012-10-24 14:12 saha 閱讀(261) 評論(0)  編輯 收藏 引用

            <2025年8月>
            272829303112
            3456789
            10111213141516
            17181920212223
            24252627282930
            31123456

            常用鏈接

            留言簿

            文章分類

            文章檔案

            收藏夾

            搜索

            •  

            最新評論

            久久久免费精品re6| 九九久久精品国产| 99精品久久久久久久婷婷| 精品久久久久一区二区三区| 亚洲欧美日韩精品久久亚洲区 | 大香网伊人久久综合网2020| 久久久国产精华液| 99精品久久精品| 亚洲色欲久久久综合网东京热| 国产精品成人99久久久久91gav| 中文字幕无码免费久久| 草草久久久无码国产专区| 日韩人妻无码精品久久久不卡| 狠狠色综合网站久久久久久久| 久久精品国产免费观看三人同眠| 国产精品久久久天天影视香蕉 | 一本久久综合亚洲鲁鲁五月天亚洲欧美一区二区 | 久久精品国产精品青草| 久久精品无码一区二区WWW| 久久99精品久久久久久秒播| 97久久精品人妻人人搡人人玩| 久久免费看黄a级毛片| 久久99精品久久久久久野外| 久久精品一区二区| 久久精品亚洲精品国产色婷| 色99久久久久高潮综合影院| 久久精品国产色蜜蜜麻豆| 国内精品久久久久久久亚洲| 亚洲一区中文字幕久久| 亚洲嫩草影院久久精品| 欧美激情精品久久久久| 香蕉久久夜色精品国产小说| 欧美激情精品久久久久| 国产成人AV综合久久| 久久99精品久久久久久秒播| 久久人搡人人玩人妻精品首页| 精品免费久久久久国产一区| 久久久免费观成人影院| 久久婷婷人人澡人人爽人人爱| 久久久久免费精品国产| 久久综合亚洲欧美成人|