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

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

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

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

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

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

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

          應(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 閱讀(669) 評論(0)  編輯  收藏 所屬分類: java languagesystem design

          主站蜘蛛池模板: 临泉县| 民丰县| 宁蒗| 泸州市| 新巴尔虎左旗| 宜昌市| 清河县| 贡觉县| 赤水市| 耿马| 尼玛县| 湖南省| 咸阳市| 通渭县| 沅陵县| 孝义市| 任丘市| 永登县| 黄陵县| 曲水县| 邛崃市| 田林县| 上犹县| 佳木斯市| 抚松县| 迁西县| 堆龙德庆县| 车险| 错那县| 鹿邑县| 交城县| 福泉市| 安溪县| 晋宁县| 石景山区| 建德市| 富源县| 杂多县| 上高县| 赤水市| 瑞丽市|