posts - 23,comments - 66,trackbacks - 0
          QWAN(無名的質(zhì))、Gate(門)、Way(道)
          利用道從門演化成質(zhì),就是采用一定的模式利用一種語言達(dá)到軟件的完美。

          無名天地之始,有名萬物之母。
          名是死的混沌。

          道生一,一生二,二生三,三生萬物。萬物負(fù)陰而抱陽,沖氣以為和。
          氣聚而有其形,氣散而歸于無形。

          《老子》:善為士者不武。--好的設(shè)計師不會在他設(shè)計的系統(tǒng)中再做大規(guī)模的修改。
          《老子》:天下有道,卻走馬以糞;天下無道,戎馬生于效。

          開閉原則:對擴(kuò)展開放,對修改關(guān)閉。--抽象化是關(guān)鍵,對可變性進(jìn)行封裝。
          《太玄》:知固而不知革,物失其則;知革而不知固,物失其均。
          所有類圖的繼承結(jié)構(gòu)都不會超過兩層,否則就會失去對于可變性的封裝原則,就會在一個封裝內(nèi)含有多個可變元素。

          里式代換原則:任何基類可以出現(xiàn)的地方,子類一定可以出現(xiàn)。
          依賴倒轉(zhuǎn)原則:要依賴與抽象,不要依賴與實現(xiàn)。
          合成/聚合復(fù)用原則:要盡量使用合成和聚合,少使用繼承。
          迪米特法則:一個軟件實體應(yīng)該盡可能少的與其他實體發(fā)生相互作用。
          接口隔離原則:應(yīng)當(dāng)為client提供盡可能小的單獨的接口,而不是提供大的總的接口。

          可插拔性的關(guān)鍵在于存在一個接口,以及每個構(gòu)件都實現(xiàn)了這個接口。

          應(yīng)當(dāng)優(yōu)先使用接口實現(xiàn)抽象類型。

          抽象類是用來繼承的,具體類不是用來繼承的。
          抽象類應(yīng)該具有盡可能多的共同代碼,應(yīng)當(dāng)具有盡可能少的數(shù)據(jù)。

          類之間的繼承是很容易被濫用的復(fù)用工具。
          防止繼承濫用的原則:
          1. 區(qū)分has-a和is-a的區(qū)別
          2. 子類有擴(kuò)展超類的責(zé)任,而不是替換掉
          3. 不要從工具類繼承
          posted on 2006-06-09 02:34 rd2pm 閱讀(664) 評論(0)  編輯  收藏 所屬分類: java language 、system design

          主站蜘蛛池模板: 东至县| 周宁县| 民乐县| 龙山县| 渑池县| 皮山县| 绩溪县| 平乐县| 延安市| 阳朔县| 满城县| 大竹县| 册亨县| 东兴市| 堆龙德庆县| 太仆寺旗| 辽宁省| 谷城县| 西昌市| 叙永县| 桐柏县| 天津市| 丽水市| 东辽县| 华阴市| 河南省| 张家口市| 普格县| 海林市| 海原县| 山东省| 万安县| 深水埗区| 邓州市| 嵩明县| 贵南县| 红桥区| 天祝| 定兴县| 丹东市| 本溪市|