C#物件導向設計模式第一講:物件導向設計模式與原則

來源:互聯網
上載者:User

(根據MSDN Webcast相關課程整理)

模式:提供重複發生的問題的解決方案的核心。

設計模式:軟體設計過程中某一類問題的一般性解決方案。

物件導向設計模式:物件導向設計過程中、特定情境下,類與相互連信的之間的常見的組織關係。

GOF 23種設計模式

好的設計:可以滿足應對變化提高複用的設計。

原始碼就是設計,軟體設計最大的特點就是需求永遠在變化。

理想化的軟體開發模式:軟體開發=系統設計(設計師)+代碼編寫(程式員)

設計模式不是演算法技巧,不能照搬照用,只能活學活用,必須理解。

即使懂物件導向的語言機制,但如果理解不深入,也並不一定能運用到實際設計與開發中去。

(OOPL)物件導向三大實現機制:

封裝:隱藏內部實現

繼承:複用

多態:改寫對象行為

新增一個員工類型而不需要修改原來的設計,只需要擴充一個工廠類中的方法。

擴充:新增一個功能,不修改原來的設計

改變:修改原來的設計

代碼耦合:就是代碼關係過於緊密,往往改變一小段代碼,需要整個項目做很大的改動。在實際開發中應該盡量避免過高的耦合。介面、繼承是解決高耦合的一種好方法。

對象封裝了行為與狀態即代碼與資料。

物件導向設計三大原則:

1,針對介面編程而不是針對實現編程;

2,優先使用對象組合而不是類繼承(is of關係);

3,封裝變化點;

使用設計模式的正確方法:針對變化點,使用重構來得到模式而不是一步到位的應用所謂的模式

幾條更具體的設計原則:

1, 單一職責原則(SRP):一個類應該只有一個引起它變化的原因

File類,FileInfor類

2, 開放封閉原則(OCP):類模式應該是可擴充的,但是不可修改的(對擴充開放,對更改封閉,儘可能新增)

3, Liskov替換原則(LSP):子類必須能替換它們的基類

4, 依賴倒置原則(DIP):高層模式不應該依賴於低層模組,二者應該依賴於抽象;抽象不應該依賴於實現細節,實現細節應該依賴於抽象

5, 介面隔離原則(ISP):不應該強迫客戶程式依賴於它們不用的方法

介面與抽象類別的區別:

介面是一份契約

抽象類別提供一個架構

<完>

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.