backbone(-2) 理解物件導向,backbone-2

來源:互聯網
上載者:User

backbone(-2) 理解物件導向,backbone-2
什麼是OO

        我一直以為自己很好的掌握了OO,所以大膽地在面試時不從程式的角度來解釋OO。但事實是我只是對已經知曉的理論作了一種形而上學的概括,在理論的應用時並沒有得心應手,所以在我變成web前端程式員之後,真正開始用架構來開發豐富頁面之前,非常有必要梳理自己的認知。

        OO抽象出的對象是以實體屬性為基礎,對象管理自己內部的變化並針對這些變化改變自己的呈現,對象之間完全是隔離的,只有資料在對象之間跑動。對象就像細胞一樣,被細胞膜封裝,細胞間隙液則是資料流的一種,細胞液中沒有直接控制細胞行為的武器,只有各種化學元素,細胞對這些化學元素的反應是封閉在細胞內部、由細胞本身提供的。細胞之間的通訊則完全依賴資料流的變化(資料流包含所有外部刺激:光、溫度、體液中的物質整合資訊、輻射、震動……)


為什麼我們難以運用OO

       朱元璋是出了名的控制狂,但他的思想很樸素,他實際是想用物件導向的方法製造出一套行政制度,於是設定了各種文書,行政單位之間通過文書來驅動,行政單位政務相對完整獨立——這是物件導向手段中典型的資料驅動方式……但結果是這套制度讓官員崩潰了,要做的事太多,資料流根本沒有辦法流暢,朱老大在把人當機器使呢。

       為什麼把人當機器使就會出問題呢?因為人不可能和機器一樣穩定,true和false通過與門肯定能得出false,備胎和女神結合卻不一定會生出自己的孩子……涉及到人的地方,對象本身的功能不見得有用,因此控制A對象的方法不一定在A對象內部,而是在B對象身上,人的江湖都是這樣。

       我最近讀的一本書叫《三體》,三體人思維是透明的,不能理解人類使用欺詐的方式。就像我們在接觸物件導向之前一直適應的是面向過程,業務驅動資料,過程是主體。忽然之間讓我們轉變思維,以對象封裝資料,業務被切割成片段分散到各個對象中,用控制資料流來組合對象形成業務——在一定程度上這是和人類世界動作的相反方式。

        雖然我們在一開始接觸的時候就記住瞭解了物件導向,但是如果沒有體會到物件導向的好處之前,業務驅動仍然是我們大腦中default,而爽之前一定要痛一次的,這是第一次的普遍規則,所以你痛過了嗎?反正我是痛過了……


運用OO         有人問我物件導向的三大特性是什麼,我總會一愣,因為我知道三大特性,但是我懷疑它——因為我覺得OO的特性就是一個:封閉孤立性,黑盒子般的封閉。實現這一特性的思想是抽象封裝的思想,多態和繼承只是方便設計時使用的手段。      所以如何運用OO,就是如何封閉對象,把對象封閉成細胞那樣擁有自己的生態系統。      所以在接受到一個需求,無論它是複雜還是簡單,如何將它抽象分解成獨立的一個個無耦合平面層次的對象,就是運用OO。如何使用這些對象,或者對這些基礎對象進行貫通連接形成高一層次的對象,則是重新形成業務的過程。       一個系統中的業務或多或少都存在重複的子業務或業務片段,OO使用對業務合并同類項的方式抽取因子級對象,至少有以下好處:
  • 1.極大減化了重複代碼,提高了代碼的重用性。
  • 2.對象的呈現變化由自己控制,分散了整體業務的關注點,減化了業務的複雜度。
  • 3.高擴充維護性,因子物件提供的是基礎功能,它們與具體的業務不耦合,因此可以隨便組合,因子的添加變化呈現高度可分離性。

聯繫我們

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