面向對象結構圖


  今天在家畫了一下午這個圖,只是把概念性的東西總結了一下,不過還有不少知識點沒有說到,只寫了一些自己感覺用的着的東西,而且這個圖也少了代碼舉例的東西,總之不是很完整吧,可能動物會這個隱喻有點牽強,但對理解面向對象還是挺有用的,之前看過一本書《代碼大全》前幾章着重講了隱喻的重要,當時不覺得怎么樣,但是后在實際去理解學習一個新技術時,把這些東西都類比成現實中的實例,確實很好理解,有時就有種茅塞頓開的感覺,隱喻本身就是一個很好地思想。還有要說一點的是,這個圖主要是根據《大話設計模式》后的實習生章節改編的,然后加上自己理解的東西,《大話設計模式》也是把各種設計模式類比成實際存在的東西,很容易就理解了,很不錯的一本書。現在剛看了兩三個模式,已經感覺到面向對象的強大了,以后還要加緊學習了。

  《大話設計模式》里面有個例子印象挺深刻的,說的是活字印刷術。以前一直以為中國的四大發明也沒什么偉大的,尤其是活字印刷術,不就是把一個字做成一個獨立的模板上,然后用的時候把需要的字組合起來就行了,感覺也沒啥吧,要做我也能做的,有啥了不起的。但假如從整個印刷行業來看,這帶來的確是一場不折不扣的思想革命,現在雖然印刷技術已經是之前無法比擬的,但是基本原理還是差不多,而且活字印刷的思想已經滲透到各行各業了。說白了活字印刷術就是就是面向對象思想,完美體現了面向對象的可復用性,可維護性,可擴展性以及靈活性。面向對象的三大特性也是很好地應用。首先把每個模板字看成是一個對象,每個模板字都能根據自己的形狀印出不同的字,也就是說都有一個印字的方法,只不過印出來的字不同而已,這樣模板字之間耦合性低,這就體現了封裝。繼承可以這么看,每一個模板字除了字不一樣,但是尺寸形狀都差不多,是從一個模子出來的,那么我們可以把這個模子看成是父類,這些模板字就是子類,它們有共同的屬性,那這個模子就可以抽象成抽象類了,應該有一個刻字的抽象方法,每個模板繼承后需重寫刻字的方法。還有我們印刷的工具、技術是一樣的,不會因為一個字的不一樣就需要換一套工具或者技術,這就是說無論我們使用什么的字,只要它和模子的大小一樣,能刻字,我們使用的工具和技術都不需要改變,這難道不是多態的體現嗎? 這里還應用了設計模式中的依賴倒置原則,不依賴具體的模板字而是一種模型的接口,只要你符合模板的特性,我就能用,而制作模板字時也不依賴於某套工具,不是說工具做了點修改制作的模板字就全不能用了,而是就按照一個特定模型制作,我的工具就能使用...

  沒打算寫那么多的,以前也沒有想那么多,不過確實越寫越多,越想越多,文思如泉涌啊。不過要真正在編程時,靈活的應用面向對象編程,卻不是一件容易的事,還需要多多實踐啊。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM