亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

C# 面向對象的基本原則

2020-01-24 03:45:30
字體:
來源:轉載
供稿:網友
C#面向對象的基本原則
一、面向接口編成而不是實現 [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 .]
每一個職責都是一個設計的變因,需求變化的時候,需求變化反映為類職責的變化。當你系統里面的對象都只有一個變化的原因的時候,你就已經很好的遵循了SRP原則。 如果一個類承擔的職責過多,就等于把這些職責耦合在了一起。一個職責的變化就可能削弱或者抑制這個類其它職責的能力。這種設計會導致脆弱的設計。當變化發生的時候,設計會遭到意想不到的破壞。SRP 讓這個系統更容易管理維護,因為不是所有的問題都攪在一起。
內聚[Cohesion[ 其實是SRP原則的另外一個名字.你寫了高內聚的軟件其實就是說你很好的應用了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 .]
DRY 很簡單,但卻是確保我們代碼容易維護和復用的關鍵。你盡力避免重復代碼實際上是在確保每一個需求和功能在你的系統中只實現一次,否則就存在浪費!系統用例不存在交集,所以我們的代碼更不應該重復,從這個角度看DRY可就不只是在說代碼了。
DRY 關注的是系統內的信息和行為都放在一個單一的,明顯的位置。就像你可以猜到正則表達式在.net中的位置一樣,因為合理所以可以猜到。
DRY 原則:如何對系統職能進行良好的分割!職責清晰的界限一定程度上保證了代碼的單一性。

五、OCP : Open-Close Principle 開放閉合原則
類應該對修改關閉,對擴展打開;[Classes should be open for extension ,and closed for modification .]
OCP 關注的是靈活性,改動是通過增加代碼進行的,而不是改動現有的代碼;
OCP的應用限定在可能會發生的變化上,通過創建抽象來隔離以后可能發生的同類變化
OCP原則傳遞出來這樣一個思想:一旦你寫出來了可以工作的代碼,就要努力保證這段代碼一直可以工作。這可以說是一個底線。稍微提高一點要求,一旦我們的代碼質量到了一個水平,我們要盡最大努力保證代碼質量不回退。這樣的要求使我們面對一個問題的時候不會使用湊活的方法來解決,或者說是放任自流的方式來解決一個問題;比如代碼添加了無數對特定數據的處理,特化的代碼越來越多,代碼意圖開始含混不清,開始退化。
OCP 背后的機制:封裝和抽象;封閉是建立在抽象基礎上的,使用抽象獲得顯示的封閉;繼承是OCP最簡單的例子。除了子類化和方法重載我們還有一些更優雅的方法來實現比如組合; 怎樣在不改變源代碼(關閉修改)的情況下更改它的行為呢?答案就是抽象,OCP背后的機制就是抽象和多態.沒有一個可以適應所有情況的貼切的模型!一定會有變化,不可能完全封閉.對程序中的每一個部分都肆意的抽象不是一個好主意,正確的做法是開發人員僅僅對頻繁變化的部分做出抽象。拒絕不成熟的抽象和抽象本身一樣重要。 OCP是OOD很多說法的核心,如果這個原則有效應用,我們就可以獲更強的可維護性 可重用 靈活性 健壯性 LSP是OCP成為可能的主要原則之一

六、LSP: The Liskov substitution principle 里氏替換原則
子類必須能夠替換基類。[Subtypes must be substitutable for their base types.]
LSP關注的是怎樣良好的使用繼承. 必須要清楚是使用一個Method還是要擴展它,但是絕對不是改變它。
LSP清晰的指出,OOD的IS-A關系是就行為方式而言,行為方式是可以進行合理假設的,是客戶程序所依賴的。
LSP讓我們得出一個重要的結論:一個模型如果孤立的看,并不具有真正意義的有效性。模型的有效性只能通過它的客戶程序來表現。必須根據設計的使用者做出的 合理假設來審視它。而假設是難以預測的,直到設計臭味出現的時候才處理它們。
對于LSP的違反也潛在的違反了OCP 。

七、DIP:依賴倒置原則
高層模塊不應該依賴于底層模塊 二者都應該依賴于抽象,抽象不應該依賴于細節 細節應該依賴于抽象。
什么是高層模塊?高層模塊包含了應用程序中重要的策略選擇和業務模型。這些高層模塊使其所在的應用程序區別于其它。 如果高層模塊依賴于底層模塊,那么在不同的上下文中重用高層模塊就會變得十分困難。然而,如果高層模塊獨立于底層模塊,那么高層模塊就可以非常容易的被重用。該原則就是框架設計的核心原則。這里的倒置不僅僅是依賴關系的倒置也是接口所有權的倒置。應用了DIP我們會發現往往是客戶擁有抽象的接口,而服務者從這些抽象接口派生。這就是著名的Hollywood原則:"Don't call us we'll call you."底層模塊實現了在高層模塊聲明并被高層模塊調用的接口。通過倒置我們創建了更靈活 更持久更容易改變的結構。
DIP的簡單的啟發規則:依賴于抽象;這是一個簡單的陳述,該規則建議不應該依賴于具體的類,也就是說程序匯總所有的依賴都應該種植于抽象類或者接口。如果一個類很穩定,那么依賴于它不會造成傷害。然而我們自己的具體類大多是不穩定的,通過把他們隱藏在抽象接口后面可以隔離不穩定性。依賴倒置可以應用于任何存在一個類向另一個類發送消息的地方,依賴倒置原則是實現許多面向對象技術多宣稱的好處的基本底層機制,是面向對象的標志所在。

八、ISP:接口隔離原則
不應該強迫客戶程序依賴它們不需要的使用的方法。
接口不是高內聚的,一個接口可以分成N組方法,那么這個接口就需要使用ISP處理一下。
接口的劃分是由使用它的客戶程序決定的,客戶程序是分離的接口也應該是分離的。
一個接口中包含太多行為時候,導致它們的客戶程序之間產生不正常的依賴關系,我們要做的就是分離接口,實現解耦。
應用了ISP之后,客戶程序看到的是多個內聚的接口。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美激情视频一区| 欧美电影在线观看网站| 国产亚洲精品成人av久久ww| 亚洲天堂日韩电影| 欧美成人午夜影院| 欧美黑人狂野猛交老妇| 精品二区三区线观看| yellow中文字幕久久| 自拍视频国产精品| 日韩av一区二区在线| 日韩精品在线看| 97**国产露脸精品国产| 欧美激情精品久久久久久黑人| 亚洲一区二区三区在线视频| 久久久精品国产亚洲| 日韩欧美国产中文字幕| 久久精品视频中文字幕| 亚洲国产精品中文| 国产视频精品va久久久久久| 欧美日韩中文字幕在线| 亚洲国产精品va在线观看黑人| 亚洲性线免费观看视频成熟| 成人性生交大片免费看视频直播| 国产精品视频大全| 亚洲综合在线做性| 久久久午夜视频| 精品免费在线观看| 欧美极品少妇xxxxx| 欧美精品videosex性欧美| 国产精品99蜜臀久久不卡二区| 亚洲久久久久久久久久| 亚洲精品99久久久久| 欧美日韩国产精品一区二区不卡中文| 久久99久国产精品黄毛片入口| 日韩乱码在线视频| 久久精品成人动漫| 亚洲一区二区精品| 91tv亚洲精品香蕉国产一区7ujn| 欧美一区二区三区四区在线| 欧美在线www| 日韩精品在线电影| 久久精品视频在线播放| 精品久久久久久亚洲国产300| 日韩黄色在线免费观看| 国产深夜精品福利| 欧美极品少妇xxxxⅹ免费视频| 57pao国产成人免费| 亚洲第一福利在线观看| 亚洲男人的天堂在线| 色综合久久中文字幕综合网小说| 欧美大尺度激情区在线播放| 色综久久综合桃花网| 一级做a爰片久久毛片美女图片| 九色精品美女在线| 中文字幕久久久av一区| 国产精品免费观看在线| 91牛牛免费视频| 成人亚洲欧美一区二区三区| 国产精国产精品| 欧美高跟鞋交xxxxxhd| 久久久久久久一| 久久国产精品首页| 亚洲一区二区免费| 欧美精品videosex牲欧美| 久久影院中文字幕| 久久综合久久美利坚合众国| 伊人久久五月天| 国产噜噜噜噜噜久久久久久久久| 成人综合国产精品| 久久免费在线观看| 国产精品免费看久久久香蕉| 欧美在线视频免费播放| 26uuu亚洲伊人春色| 成人激情春色网| 操人视频在线观看欧美| 成人高h视频在线| 欧美日韩国产区| 久久人人爽亚洲精品天堂| 久久久成人精品视频| 91精品久久久久久久久青青| 亚洲激情在线观看视频免费| 欧美美女操人视频| 亚洲欧洲在线看| 欧美在线视频观看| 亚洲午夜av久久乱码| 日韩免费av一区二区| 成人精品视频99在线观看免费| 亚洲国产成人精品久久| 日本午夜精品理论片a级appf发布| 裸体女人亚洲精品一区| 亚洲在线免费视频| 4p变态网欧美系列| 狠狠躁夜夜躁久久躁别揉| 一区二区中文字幕| 麻豆成人在线看| 国产日韩欧美成人| 中文字幕在线观看日韩| 96sao精品视频在线观看| 国产精品视频yy9099| 国产日韩欧美夫妻视频在线观看| 久久久久久久久久久免费| 欧美成在线观看| 久久99久国产精品黄毛片入口| 中文字幕亚洲一区二区三区五十路| 按摩亚洲人久久| 日韩中文字幕在线观看| 国产精品综合不卡av| 亚洲国产精品字幕| 亚洲一级片在线看| 精品呦交小u女在线| 精品高清美女精品国产区| 日韩av网址在线观看| 亚洲欧美日韩直播| 欧美另类xxx| 日韩国产精品亚洲а∨天堂免| 5566日本婷婷色中文字幕97| 美女精品久久久| 中文字幕日韩综合av| 日韩欧美在线国产| 成人444kkkk在线观看| 日韩av免费看| 91精品视频网站| 精品国产乱码久久久久久婷婷| 中文字幕av一区二区三区谷原希美| 色综合久久88色综合天天看泰| 成人亚洲欧美一区二区三区| 亚洲韩国欧洲国产日产av| 亚洲国产成人av在线| 91av成人在线| 精品亚洲一区二区三区在线播放| 日韩在线精品视频| 欧美精品videos另类日本| 色伦专区97中文字幕| 欧美一区在线直播| 精品在线小视频| 亚洲一区二区日本| 精品国产欧美成人夜夜嗨| 高清一区二区三区日本久| 欧美一区二区三区……| 色综合影院在线| 亚洲男人的天堂在线播放| 中文字幕日本精品| 国产日韩在线视频| 日韩最新在线视频| 亚洲一区二区三区香蕉| 精品国偷自产在线| 97精品久久久中文字幕免费| 中文字幕欧美精品在线| 色综合久久天天综线观看| 懂色aⅴ精品一区二区三区蜜月| 日韩av最新在线观看| 久久亚洲私人国产精品va| 久久av中文字幕| 欧美日韩国产色视频| 高清欧美性猛交xxxx| www.欧美精品一二三区| 日韩成人激情视频| 国产精品视频免费在线观看| 亚洲有声小说3d| 国产欧美日韩中文字幕| 国产精品私拍pans大尺度在线| 日韩中文字幕在线看| 欧美另类极品videosbest最新版本| 中文字幕在线国产精品|