青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

woaidongmao

文章均收錄自他人博客,但不喜標題前加-[轉貼],因其丑陋,見諒!~
隨筆 - 1469, 文章 - 0, 評論 - 661, 引用 - 0
數據加載中……

OOP之五大原則

基本原則

·               封裝變化Encapsulate what varies.

·               面向接口變成而不是實現 Code to an interface rather than to an implementation.

·               優先使用組合而非繼承 Favor Composition Over Inheritance

SRP: The single responsibility principle 單一職責

系統中的每一個對象都應該只有一個單獨的職責,而所有對象所關注的就是自身職責的完成。

Every object in your system should have a single responsibility ,and all the object s services should  be focused on carrying out that single responsibility .

 

1.          每一個職責都是一個設計的變因,需求變化的時候,需求變化反映為類職責的變化。當你系統里面的對象都只有一個變化的原因的時候,你就已經很好的遵循了SRP原則。

2.          如果一個類承擔的職責過多,就等于把這些職責耦合在了一起。一個職責的變化就可能削弱或者抑制這個類其它職責的能力。這種設計會導致脆弱的設計。當變化發生的時候,設計會遭到意想不到的破壞。

3.          SRP 讓這個系統更容易管理維護,因為不是所有的問題都攪在一起。

4.          內聚Cohesion 其實是SRP原則的另外一個名字.你寫了高內聚的軟件其實就是說你很好的應用了SRP原則。

5.          怎么判斷一個職責是不是一個對象的呢?你試著讓這個對象自己來完成這個職責,比如:“書自己閱讀內容”,閱讀的職責顯然不是書自己的。

6.          僅當變化發生時,變化的軸線才具有實際的意義,如果沒有征兆,那么應用SRP或者任何其它的原則都是不明智的。

DRY : Don't repeat yourself Principle

通過抽取公共部分放置在一個地方避免代碼重復.

Avoid duplicate code by abstracting out things that are common and placing those thing in a single location .

 

1.          DRY 很簡單,但卻是確保我們代碼容易維護和復用的關鍵。

2.          你盡力避免重復代碼候實際上在做一件什么事情呢?是在確保每一個需求和功能在你的系統中只實現一次,否則就存在浪費!系統用例不存在交集,所以我們的代碼更不應該重復,從這個角度看DRY可就不只是在說代碼了。

3.          DRY 關注的是系統內的信息和行為都放在一個單一的,明顯的位置。就像你可以猜到正則表達式在.net中的位置一樣,因為合理所以可以猜到。

4.          DRY 原則:如何對系統職能進行良好的分割!職責清晰的界限一定程度上保證了代碼的單一性。

OCP : Open-Close Principle開閉原則

類應該對修改關閉,對擴展打開;

Classes should be open for extension ,and closed  for modification .

 

1.          OCP 關注的是靈活性,改動是通過增加代碼進行的,而不是改動現有的代碼;

2.          OCP的應用限定在可能會發生的變化上,通過創建抽象來隔離以后發生的同類變化

3.          OCP原則傳遞出來這樣一個思想:一旦你寫出來了可以工作的代碼,就要努力保證這段代碼一直可以工作。這可以說是一個底線。稍微提高一點要求,一旦我們的代碼質量到了一個水平,我們要盡最大努力保證代碼質量不回退。這樣的要求使我們面對一個問題的時候不會使用湊活的方法來解決,或者說是放任自流的方式來解決一個問題;比如代碼添加了無數對特定數據的處理,特化的代碼越來越多,代碼意圖開始含混不清,開始退化。

4.          OCP 背后的機制:封裝和抽象;封閉是建立在抽象基礎上的,使用抽象獲得顯示的封閉;繼承是OCP最簡單的例子。除了子類化和方法重載我們還有一些更優雅的方法來實現比如組合;

怎樣在不改變源代碼(關閉修改)的情況下更改它的行為呢?答案就是抽象,OCP背后的機制就是抽象和多態

5.          沒有一個可以適應所有情況的貼切的模型!一定會有變化,不可能完全封閉.對程序中的每一個部分都肆意的抽象不是一個好主意,正確的做法是開發人員僅僅對頻繁變化的部分做出抽象。拒絕不成熟的抽象和抽象本身一樣重要。

6.          OCPOOD很多說法的核心,如果這個原則有效應用,我們就可以獲更強的可維護性可重用 靈活性 健壯性 LSPOCP成為可能的主要原則之一

LSP: The Liskov substitution principle

子類必須能夠替換基類。

Subtypes must be substitutable  for their base types.

 

1.          LSP關注的是怎樣良好的使用繼承.

2.          必須要清楚是使用一個Method還是要擴展它,但是絕對不是改變它。

3.          LSP清晰的指出,OODIS-A關系是就行為方式而言,行為方式是可以進行合理假設的,是客戶程序所依賴的。

4.          LSP讓我們得出一個重要的結論:一個模型如果孤立的看,并不具有真正意義的有效性。模型的有效性只能通過它的客戶程序來表現。必須根據設計的使用者做出的合理假設來審視它。而假設是難以預測的,直到設計臭味出現的時候才處理它們。

5.          對于LSP的違反也潛在的違反了OCP

DIP:依賴倒置原則

高層模塊不應該依賴于底層模塊二者都應該依賴于抽象

抽象不應該依賴于細節細節應該依賴于抽象

1.          什么是高層模塊?高層模塊包含了應用程序中重要的策略選擇和業務模型。這些高層模塊使其所在的應用程序區別于其它。

2.          如果高層模塊依賴于底層模塊,那么在不同的上下文中重用高層模塊就會變得十分困難。然而,如果高層模塊獨立于底層模塊,那么高層模塊就可以非常容易的被重用。該原則就是框架設計的核心原則。

3.          這里的倒置不僅僅是依賴關系的倒置也是接口所有權的倒置。應用了DIP我們會發現往往是客戶擁有抽象的接口,而服務者從這些抽象接口派生。

4.          這就是著名的Hollywood原則:"Don't call us we'll call you."底層模塊實現了在高層模塊聲明并被高層模塊調用的接口。

5.          通過倒置我們創建了更靈活 更持久更容易改變的結構

6.          DIP的簡單的啟發規則:依賴于抽象;這是一個簡單的陳述,該規則建議不應該依賴于具體的類,也就是說程序匯總所有的依賴都應該種植于抽象類或者接口。

7.          如果一個類很穩定,那么依賴于它不會造成傷害。然而我們自己的具體類大多是不穩定的,通過把他們隱藏在抽象接口后面可以隔離不穩定性。

8.          依賴倒置可以應用于任何存在一個類向另一個類發送消息的地方

9.          依賴倒置原則是實現許多面向對象技術多宣稱的好處的基本底層機制,是面向對象的標志所在。

ISP:接口隔離原則

不應該強迫客戶程序依賴它們不需要的使用的方法。

 

1.          接口不是高內聚的,一個接口可以分成N組方法,那么這個接口就需要使用ISP處理一下。

2.          接口的劃分是由使用它的客戶程序決定的,客戶程序是分離的接口也應該是分離的。

3.          一個接口中包含太多行為時候,導致它們的客戶程序之間產生不正常的依賴關系,我們要做的就是分離接口,實現解耦。

4.          應用了ISP之后,客戶程序看到的是多個內聚的接口。

 

posted on 2008-12-22 21:19 肥仔 閱讀(1326) 評論(0)  編輯 收藏 引用 所屬分類: OOP

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            狠狠入ady亚洲精品| 亚洲精品视频免费在线观看| 樱桃成人精品视频在线播放| 影音先锋日韩精品| 狠色狠色综合久久| 韩国一区二区在线观看| 狠狠色丁香久久综合频道| 激情小说另类小说亚洲欧美| 国产精品igao视频网网址不卡日韩 | 99视频有精品| 一区二区三区日韩欧美| 亚洲欧美国产va在线影院| 亚洲欧美制服另类日韩| 久久综合成人精品亚洲另类欧美| 久久久99国产精品免费| 亚洲第一网站免费视频| 亚洲精品免费网站| 亚洲一区二区少妇| 玖玖精品视频| 国产精品免费网站| 亚洲国产精品一区| 亚洲免费在线视频一区 二区| 久久久精品999| 99国产精品| 久久精品一区二区| 欧美视频在线免费| 亚洲国产日韩一区| 性欧美大战久久久久久久久| 亚洲风情亚aⅴ在线发布| 亚洲综合不卡| 欧美片在线播放| 在线电影院国产精品| 亚洲综合大片69999| 欧美成人dvd在线视频| 亚洲免费视频观看| 欧美搞黄网站| 亚洲成色www久久网站| 久久不射中文字幕| 夜夜嗨一区二区三区| 欧美xxxx在线观看| 在线观看不卡av| 欧美一级电影久久| 亚洲免费观看在线视频| 老司机一区二区三区| 国内免费精品永久在线视频| 西瓜成人精品人成网站| 亚洲老司机av| 欧美高清视频一区| 亚洲国产婷婷香蕉久久久久久99| 久久久久久久综合| 亚洲欧美日韩国产中文在线| 国产精品国产三级国产普通话三级 | 亚洲影视在线| 国产精品v日韩精品v欧美精品网站| 亚洲精品自在在线观看| 蜜桃精品一区二区三区| 久久国产精品一区二区| 国产乱码精品一区二区三区av| 亚洲一区二区三区中文字幕| 日韩一级二级三级| 欧美第一黄网免费网站| 欧美一级精品大片| 日韩视频在线一区二区三区| 欧美精品乱码久久久久久按摩| 亚洲国产成人在线| 亚洲第一精品夜夜躁人人爽 | 亚洲无线观看| 日韩一二在线观看| 国产精品h在线观看| 亚洲欧美在线免费| 午夜精品久久久久久久久久久久久| 国产精品日韩精品欧美精品| 午夜精品免费在线| 亚洲欧美日韩国产中文在线| 国产日韩在线看片| 老巨人导航500精品| 牛牛国产精品| 亚洲天堂av在线免费| 亚洲午夜精品一区二区三区他趣| 国产精品麻豆成人av电影艾秋| 午夜宅男欧美| 欧美在线免费观看亚洲| 亚洲国产欧美另类丝袜| 亚洲美女在线一区| 国产精品主播| 欧美成人高清| 欧美午夜宅男影院| 久久久久久国产精品一区| 久久综合久久综合这里只有精品| 99精品国产一区二区青青牛奶| 亚洲天堂av高清| 亚洲高清久久网| 日韩视频免费观看高清在线视频| 国产老女人精品毛片久久| 欧美二区在线播放| 国产精品你懂得| 欧美电影免费网站| 国产精品免费aⅴ片在线观看| 久久久爽爽爽美女图片| 欧美日韩www| 牛牛精品成人免费视频| 国产精品va在线播放| 亚洲第一页在线| 国产视频一区欧美| 亚洲美女在线国产| 亚洲国产精品123| 亚洲影院免费| 一区二区三区免费观看| 久久另类ts人妖一区二区| 亚洲影视九九影院在线观看| 毛片基地黄久久久久久天堂 | 亚洲日本aⅴ片在线观看香蕉| 国产欧美精品日韩| 亚洲人被黑人高潮完整版| 国产欧美综合一区二区三区| 亚洲国产91| 在线观看一区二区精品视频| 午夜精品一区二区在线观看| 在线视频你懂得一区二区三区| 欧美一区二区三区在线看| 久久久久看片| 欧美国产一区二区| 麻豆亚洲精品| 国产日韩在线一区| 亚洲午夜伦理| 亚洲视频免费| 欧美黑人多人双交| 免费看亚洲片| 一区二区三区在线看| 小黄鸭精品密入口导航| 亚洲欧美日产图| 欧美手机在线| 亚洲美女黄网| 在线视频亚洲一区| 欧美精品免费看| 亚洲精品女av网站| 樱桃视频在线观看一区| 久久国产婷婷国产香蕉| 久久国产精品久久国产精品| 国产精品视频yy9099| 亚洲影院高清在线| 欧美中文在线观看| 国产欧美日韩激情| 欧美亚洲三级| 欧美 日韩 国产精品免费观看| 伊人色综合久久天天五月婷| 久久精品一二三| 欧美大尺度在线| 亚洲精品国产欧美| 欧美精品日韩一本| 这里只有精品丝袜| 欧美专区福利在线| 一区二区亚洲欧洲国产日韩| 久久躁狠狠躁夜夜爽| 免费在线欧美黄色| 亚洲精品中文在线| 国产精品久久久久久久久久久久久| 亚洲综合成人在线| 免费久久久一本精品久久区| 亚洲精品一区二区网址| 欧美视频在线观看视频极品| 性欧美18~19sex高清播放| 久久天天狠狠| 中国成人亚色综合网站| 国产日韩精品一区二区三区| 久久视频这里只有精品| 亚洲国产精品小视频| 亚洲一区二区三区精品动漫| 黄色成人在线观看| 欧美黄色免费| 亚洲一区二区视频在线| 美女被久久久| 亚洲视频一二| 在线观看亚洲a| 欧美婷婷六月丁香综合色| 久久爱91午夜羞羞| 日韩亚洲欧美一区| 免费成人在线观看视频| 中国av一区| 亚洲国产精品va在线看黑人 | 久久久久久久综合| 日韩视频免费在线观看| 久久婷婷激情| 亚洲午夜高清视频| 亚洲国产视频直播| 国产精品久久久久久妇女6080| 久久综合国产精品| 亚洲影院色无极综合| 亚洲精品人人| 欧美午夜精品理论片a级按摩| 午夜亚洲性色视频| 亚洲成色www久久网站| 国产精品日韩专区| 欧美大片在线看| 久久动漫亚洲| 亚洲欧美精品| 一区二区三区久久久| 亚洲福利在线观看| 久久香蕉国产线看观看av| 亚洲欧美成人综合|