我的隱式生活(My Implicit Life)

          繼續(xù)搞“對(duì)象”,玩OO.

          首頁 新隨筆 聯(lián)系 聚合 管理
            11 Posts :: 1 Stories :: 39 Comments :: 0 Trackbacks

          這幾天瞄了幾本設(shè)計(jì)模式的書,沒有細(xì)看具體模式啦,而是老是琢磨那些深?yuàn)W無比的話。這些話經(jīng)常出現(xiàn)在計(jì)算機(jī)的書籍中,很有禪意,也有哲理。聽說,高手就喜歡寫點(diǎn)這樣的話。

          還有就是細(xì)心體味了一下OO的設(shè)計(jì)原則,這些原則是凌駕于模式之上的,也就是更宏觀的原則。

          其中,最高指導(dǎo)的一個(gè)就是“開-閉”原則。別的原則,里氏代換原則、依賴倒置原則、組合/聚合復(fù)用原則和迪米特法則都是為了達(dá)到“開-閉”原則而出現(xiàn)的規(guī)則。

          這些原則告訴我很多東西,聚焦于一點(diǎn)就是要“面向抽象”來做一切事情。

          分析對(duì)象的時(shí)候,要多分析設(shè)計(jì)“抽象”的概念,對(duì)象之間的聯(lián)系要多基于抽象的概念而不是具體,這樣具體才能能夠變化,這樣才是開閉。用我自己的話就是要“游走于 抽象”。

          這里有一個(gè)我必須記住的就是,在封裝變化時(shí)候,多用聚合/組合,少用繼承。在封裝原子變化并且是同類型對(duì)象時(shí)才用繼承,別的都盡量用聚合/組合。而且盡量不要用多級(jí)繼承,多級(jí)繼承一般意味著有兩種變化脈絡(luò),可能的話,讓兩種變化脈絡(luò)獨(dú)立演化。很明顯,一獨(dú)立演化,又要聚合/組合了。

          還有一個(gè)必須記住的是:運(yùn)用抽象以后,客戶端的使用發(fā)生了巨大的變化。不再是指那兒用那兒。而是要做更多的準(zhǔn)備工作,因?yàn)檫\(yùn)用抽象,本身就把具體“組合”的職責(zé)推遲到使用的階段。那誰使用,肯定是客戶端。所以,客戶端的使用要革新。要習(xí)慣用工廠,習(xí)慣把一系列的抽象定具體了,并按照一定方式“組合”起來用。而且,最終要善于用接口來調(diào)用方法。

          用小飛推薦的一個(gè)工具畫了個(gè)圖,如下:
          o_好的OO思想.jpg

                                 MARCO ZHANG 2006年2月27日7:18:57

          posted on 2006-02-27 07:40 marco 閱讀(870) 評(píng)論(4)  編輯  收藏 所屬分類: -=Design Pattern=-

          Feedback

          # re: OO設(shè)計(jì)原則體會(huì) 2006-03-24 22:17 marmot
          老大,圖是用什么工具畫的,很漂亮的  回復(fù)  更多評(píng)論
            

          # re: OO設(shè)計(jì)原則體會(huì) 2006-03-25 17:02 marco
          一種叫mindManager的工具。

          這種圖叫mind map,可以稱為思維圖。

          用來構(gòu)思總結(jié)東西很棒,很棒。

          現(xiàn)在用這個(gè)東西用上癮了。

          推薦你使用,網(wǎng)上一搜都有。  回復(fù)  更多評(píng)論
            

          # re: OO設(shè)計(jì)原則體會(huì) 2006-03-26 03:45 marmot
          下載了,真的很棒  回復(fù)  更多評(píng)論
            

          # re: OO設(shè)計(jì)原則體會(huì) 2006-10-18 15:19 123bingbing
          增開7群,號(hào)碼 30440732
          8群 30756649
          9群 30178567
          10群 28694497

          我們的qq群:15096318 學(xué)習(xí)程序的都可以來
            回復(fù)  更多評(píng)論
            

          主站蜘蛛池模板: 苏尼特右旗| 泰安市| 礼泉县| 阿拉善盟| 阳东县| 蛟河市| 昔阳县| 永丰县| 安丘市| 常熟市| 格尔木市| 姚安县| 桑植县| 改则县| 龙海市| 迁西县| 陆丰市| 二连浩特市| 诏安县| 高尔夫| 广元市| 肃北| 呼玛县| 安岳县| 富蕴县| 东辽县| 巩义市| 隆安县| 景泰县| 霍山县| 剑阁县| 新化县| 咸阳市| 金堂县| 荥经县| 将乐县| 梁山县| 辛集市| 甘谷县| 威海市| 武清区|