理解面向對象

能夠先從面向過程來講起,咱們在大學的時候學了c語言,一種面向過程的語言實現,在思考問題的時候,着重強烈解決問題的步驟。
而面嚮對象語言的實現,包括java,.net ,vb,如今php也有了必定程度的支持,甚至javascript,其思考問題的方式不是傳統的步驟解決問題的步驟,而是先構造對象,好比媽媽作飯,其能夠構造媽媽這個對象,有mother,這個私有屬性,和 doCookie()這個作飯方法。

面向對象的理解,我的認爲分爲<1>代碼級的面向對像,在這裏能夠用面向對象的3個基本概念來回答,好比封裝(封裝的理解我的認爲主要有兩個方面,1是能夠在訪問以前作數據權限控制,2另外default,protect,public也是一種封裝,而且權限的公開要特別當心,由於越是公有就越危險,任何公開的屬性或方法對使用這個方法、屬性、類的人(客戶)都是一種承諾,不可輕易變更),繼承是讓子類繼承父類的方法或屬性,子類與父類是一種is的關係(在這裏能夠講講委託,由於java是單繼承(c++是多繼承),在使用的時候儘可能使用委託,如何區分使用繼承和委託,最基本的判斷標準是繼承是is的關係,而委託是has的關係),多態是java程序在動態運行期間的一種表現行爲,配合java的反射機制能夠很好設計出頗有優秀的程序,好比調度程序等.
                        <2>系統分層甚至更高的架構級的面向對象,若是說代碼級的面向對象是一種細粒度的面向對象,那麼系統分層甚至更高的架構級的面向對象則是一種粗粒度的面向對象,如今咱們有了不少的框架,好比展現層的struts,jsf等,持久層框架hiberate等,他們都負責本身這一層所作的事情,業務邏輯你就負責業務邏輯,DAO你就負責數據訪問,不要業務邏輯裏面有數據庫訪問的代碼,因此這要就action層調用service,action裏不要出現什麼if之類的判斷(固然一點當不出現,可能不太可能,本身心理要有數),servcie調用dao,因此spring框架就出來了,負責這類的事情,而且提出不少優良的理念.在好比你們都知道如今增值業務市場競爭激烈,爲了業務的新需求,中國移動不得不對本身的系統進行改良,我看過不少移動公司不少的系統架構設計,因此能夠很清晰的看到,每次改良基本上是將原來好多的功能抽取出來單獨弄出來,放到另一個模塊。這個模塊你就負責這一塊的功能,不是你的工做,就交給其餘模塊.javascript

相關文章
相關標籤/搜索