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

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

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

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

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

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

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

          應(yīng)當(dāng)優(yōu)先使用接口實(shí)現(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 閱讀(660) 評論(0)  編輯  收藏 所屬分類: java languagesystem design

          主站蜘蛛池模板: 西和县| 太仓市| 静乐县| 本溪市| 宜君县| 墨江| 漾濞| 梅河口市| 晋宁县| 北川| 海原县| 双流县| 灌云县| 安溪县| 土默特右旗| 黄山市| 安宁市| 广汉市| 庄河市| 喜德县| 泽州县| 泰安市| 股票| 抚松县| 商水县| 论坛| 武强县| 海盐县| 大悟县| 白玉县| 新龙县| 剑川县| 华蓥市| 龙里县| 剑河县| 忻城县| 龙门县| 屏南县| 内丘县| 嘉鱼县| 祁东县|