物件導向設計==虛函數設計?

來源:互聯網
上載者:User

見有人常把“物件導向設計”掛在嘴邊,彷彿物件導向設計是多麼高深,多麼值得自豪的東西,其實,也就那麼回事。物件導向,不見得適用於所有的場合。就比如底層通訊模組而言,不見得非要用物件導向不可。

但,什麼樣的設計,才是物件導向的?是不是只要使用了class,裡面弄幾個成員函數和成員變數就成了物件導向了?當然不是。

物件導向,我把它概括為兩個方面。一個是“神”,一個是“形”。只有“形、神”兼備的設計,才能稱為真正的物件導向設計。

所謂的“神”,是指,在作系統規劃時,就要學會按對象的思維來構造系統。比如銀行系統,你就不能按原先的存錢、取錢、查賬等這樣的功能來劃分系統,而應該用“銀行帳號”,“使用者”等來劃分構成銀行系統的對象,然後在這些對象裡添加資料和函數。也就是說,要作物件導向,首先要培養一種以“對象和類”為主的思維方式,即以資料為中心,而不是以過程為中心。

所謂的“形”,是指,在作物件導向設計時,會使用到的一些典型的物件導向設計手法,讓人一看就知道是物件導向的。在這些手法中,最誘人的可能就是“虛函數”了。縱觀各種設計模式書籍,說到底,都是把繼承和多態用到了極致,虛函數是實現眾多模式必不可少的設計方法。所以,也有人說“物件導向設計==虛函數設計”,雖然不完全對,但此話確實很傳神。

一點感悟,諸位看官,權當笑料罷!呵呵。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.