物件導向設計 虛函式設計?

2021-03-31 23:41:00 字數 605 閱讀 2544

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

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

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

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

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

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

物件導向設計

物件導向設計 object oriented design,ood 方法是oo方法中乙個中間過渡環節。其主要作用是對ooa分析的結果作進一步的規範化整理,以便能夠被oop直接接受。物件導向設計 ood 是一種軟體設計方法,是一種工程化規範。這是毫無疑問的。按照bjarne stroustrup的說法...

物件導向設計

1 物件導向的三要素 1.1 封裝 encapsulation a 封裝 合理的隱藏資料的隱藏 隱藏在方法背後 實現的隱藏 隱藏在介面背後 變化的隱藏 隱藏在抽象背後 b 封裝能夠提高物件的復用性 減低物件的耦合度c 良好的封裝 物件的高內聚 1.2 繼承 inheritance a 基於差異式程式...

物件導向設計

物件導向的設計把握乙個重要原則 誰擁有資料,誰就對外提供操作這些資料的方法。人在黑板上畫圓 person,blackboard,circle draw 列車司機在剎車 人關門 兩塊石頭磨成一把石刀,石刀可以砍樹,砍成木材,木材可以做椅子。stone石頭 stoneknife石刀 stoneknife...