其實從名詞自己就能夠看出來,面向對象是關於系統開發者的,而系統架構是關於系統的。編程
設計模式與UML都是面向對象領域內部的技術:設計模式是面向對象工做經驗的沉積池,是一些比較經常使用或經典的在面向對象範式下進行設計工做後留下的遺產。是一種知識傳承或者說總結。UML是面向對象領域中的一種頗有效的表達工具。設計模式
架構研究的是系統的宏觀結構。與面向對象的不一樣是,它是關於系統的知識。好比分層。其實全部的B/S或C/S結構系統都是分層結構。這也是爲何大多數人都能很容易理解並上手「分層架構」的緣由,由於它太簡單了。架構
最好的面向對象的方法就是使用規則引擎來開發系統。由於規則引擎是一個典型的領域建模系統。在不少規則引擎中甚至提供了通用或專用的領域建模語言即DSL。在這樣的系統中使用除面向對象之外的任何思惟都不可能,所以不得不「面向」對象。工具
面向對象固然不必定必須對領域建模。若是可能的話,或者說若是足夠聰明的話,憑空設計出一套系統也不是不可能的。實際上,面向過程思想自己就是在把對象假設爲功能體的狀況下進行的。所以其實也能夠把面向過程看做是面向對象的一個子集:由於它顯然是一種被極大地侷限了的編程思惟------對象固然不僅是功能。從認識論的意義上看,客觀的對象能夠也可能被「認識」爲任何主觀的「東西」。而正是面向對象使它成爲可能。由於面向對象的中心思想是:丟掉主觀,回到客觀。面向對象經過去除主觀將注意力從新集中到了對象自己。從這個意義上講,面向對象相對於面向過程,非但不是一次進步,反而是一種退步?由於它所作的一切不過是丟掉了舊的東西,但卻並無引入任何新的東西?spa
面向對象之因此很難理解,緣由就在這裏。它太哲學了。以致於沒有哲學基礎的人很難進入它的大門。它就象是一座座落在高山上的神祕寺院,只有不多數的人才能真正得入,全部其它的人只能圍繞在它的門外,遠遠地看看而已。設計
道德經有:天下萬物生於有,有生於無。後世所謂「無中生有」的說法即來自這裏。象不少其它說法最終都被扭曲同樣,「無中生有」一樣也從一個很是深入的哲學陳述被扭曲成一種平常生活中的貶義。面向對象的核心其實就是這個邏輯:由於無中生有,因此先要有無。面向對象的目的就爲了營造這個「無」。好比,在面向過程的範式中,由於一切都是面向功能的,因此其它的一切都沒法生存。但使用了面向對象之後,由於它什麼都不面向,反而變得什麼均可以面向了。這就象碗裏面裝滿了水因此裝不下其它東西,把水倒掉後反而能裝更多東西是一個道理:全部的兒童都必須經歷這個階段,而後學會使用任何的容器。orm
有了面向對象所營造的「無」,面向過程當中的「功能」固然能夠放進去,一樣地,其它全部的東西均可以放進去。這就是面向對象的偉大之處---由於它能夠「是」任何東西。而且,一旦認識改變或更新,由於「對象」仍然在那裏,要修改或更新也是很容易的事情。這一點跟咱們在現實世界中對客觀對象的認識模式有點類似:一塊廢鐵可能被認爲是垃圾,也可能被認爲是寶物,還可能被認爲是別的任何事物,,,總之,只要做爲一個客觀事物它還存在那裏,那麼一切就都是可能的。面向對象雖然去除了認識中的主觀印象如「垃圾」或「寶物」這樣的東西,可是保留了事物的客觀存在,所以才使得在上面的任何從新「認識」都變得可能。對象
在哲學上,面向對象一方面是一次很是成功的解構行爲,一方面是一種很重要的認識論進步。認識固然是主觀的,但這並不意味着咱們必須從頭至尾使用同一種認識觀。實際上認識自己是一個反覆辯證的過程。固然領域建模也能夠實現反覆辯證,由於所謂領域自己也是處在不斷的從新定義中的。可是若是有可能的話,由於系統自己其實固然是帶有必定的使命的,能拋棄領域式的建模,那其實意味着一場新的「就地解構」。由於面向對象自己就是爲了這個目的誕生的---重構。面向對象是一場解構運動,而解構的最終目的都是爲了重構。事實上,解構主義的核心歷來就不在於簡單地推翻舊系統或創建新系統,而是一種持續的「自我否認主義」。生命週期
它的工做原理是:先構建對象。而後再構建對它的認識。開發
這麼作的好處是,藉助於哲學,它將系統中的穩定部分與不穩定部分徹底分開了:對象是其穩定部分,對它的認識是不穩定部分。這樣的結果一方面很是吻合軟件的生命週期,另外一方面更吻合整個軟件過程:開發與重構。其實重構過程自己便是一種對系統「對象」從新「認識」的過程。而重構對象顯然正好對應初期構建的系統「對象」(從另外一個角度的解釋是主語,前文有從這個角度出發的說起)。
在這個意義上,解構主義能夠說是人類認識觀的加速器。由於不斷重構的結果天然是不斷產生新的「認識」。而根據工具主義或實用主義的觀點,一切都是工具。那麼這麼作的結果天然就是,咱們不斷得到新的工具。
Great!? Or too much information?!...
可是人生的目的不就在於不斷地折磨咱們本身嗎?文明不是原本就是折磨嗎?真的嗎?若是是折磨,咱們爲何還會去作它們呢?因此確定不是。
那到底「是」什麼呢?
其實認識就是咱們本身。咱們本身就是認識。二者是一體的。好比,第一個證據:「我」是什麼?它難道不是咱們的認識嗎?它難道不是「我」嗎?既然它同時是一個認識,又同時是我,那麼認識固然就是我,我固然也就是認識。
Right?