認(rèn)識設(shè)計(jì)模式

          數(shù)據(jù)結(jié)構(gòu)研究的是針對具體問題的算法,設(shè)計(jì)模式是面向應(yīng)用開發(fā)的一種策略。

          設(shè)計(jì)模式實(shí)際上就是編程方式和習(xí)慣,是經(jīng)驗(yàn)的總結(jié),這和生活習(xí)慣類似,如果擁有好的生活習(xí)慣,你就會很健康,在其他人眼里也會很好,而如果生活習(xí)慣不好,時(shí)間不顧慮,這當(dāng)然沒什么問題(自我感覺良好),但可能會對自己的健康和其他的方面帶來影響(有時(shí)會很大)。
          設(shè)計(jì)模式也一樣,雖然不使用任何設(shè)計(jì)模式也可以寫任何的軟件,但是這就相當(dāng)于沒有好的生活習(xí)慣一樣,會給這些系統(tǒng)帶來很大的麻煩,就象一個(gè)人的煙隱很大,長期下去,得肺癌的幾率要比不吸煙的人大得多。 而使用設(shè)計(jì)模式來實(shí)現(xiàn)軟件,就相當(dāng)于擁有好的生活習(xí)慣,這樣會使整個(gè)軟件系統(tǒng)得到良性的發(fā)展。設(shè)計(jì)模式不是必須的,但擁有它使用生活變得更美好。?



          設(shè)計(jì)模式后面的道理是軟件的設(shè)計(jì)原則

          開閉原則 OCP(Open-Closed Principle): 對擴(kuò)展開放,對修改關(guān)閉. 抽象和接口是關(guān)鍵.

          里氏代換原則 LSP(Liskov Substitution Principle):? 如果對于每一個(gè)類型為T1的對象o1,都有類型為T2的對象o2, 使得以T1定義的所有程序P在所有對象o1都代換為o2時(shí), 程序P的行為沒有變化, 那么類型T2是類型T1的子類型。反過來代換不成立。
          ?
          依賴倒轉(zhuǎn)原則DIP(Dependence Inversion Principle): 第一種表述是,抽象不應(yīng)當(dāng)依賴與細(xì)節(jié),細(xì)節(jié)應(yīng)當(dāng)依賴與抽象;第二中表述是,要針對抽象和接口編程,不要針對實(shí)現(xiàn)編程。

          接口隔離原則
          ISP(Interface Segregation Principle): 使用多個(gè)專門的接口比使用一個(gè)單一的總接口要好。?

          合成/聚合復(fù)用原則
          CARP(Composite/Aggregate Resue Principle): 在一個(gè)新對象里面使用一些已經(jīng)有的對象,使之成為新對象的一部分;新的對象通過向這些對象委派達(dá)到復(fù)用已有功能的一部分。這個(gè)設(shè)計(jì)原則的另一種表述是:要盡量使用合成/聚合,而不要使用繼承。

          迪米特法則LoD(Law of Demeter
          ): 又叫做最少知識原則,就是說一個(gè)對象應(yīng)該盡量少的知道另一個(gè)對象。它的兩外幾種表述: 只與你直接的朋友通信;不要跟陌生人說話。

          posted on 2009-04-11 01:09 luofeng225 閱讀(209) 評論(0)  編輯  收藏 所屬分類: 設(shè)計(jì)模式

          <2009年4月>
          2930311234
          567891011
          12131415161718
          19202122232425
          262728293012
          3456789

          導(dǎo)航

          統(tǒng)計(jì)

          公告

          我曾經(jīng)聽到這么一個(gè)故事: 一個(gè)年輕的程序員問一個(gè)老程序員(一個(gè)比較牛逼的公司的CTO) 年輕程序員: 你為什么這么牛X., 就好像沒有你不會的。老程序員: 積累的。年輕程序員: 怎么才能積累到您的程度呢。我每天都在積累。但是似乎都沒有感覺到進(jìn)步。老程序員: 我從20歲開始做到了一件事情,直到今天,而且盡可能地保證不間斷。年輕程序員: 到底是什么? 老程序員: 我每天保證自己有2個(gè)小時(shí)在學(xué)習(xí)新的東西。

          常用鏈接

          留言簿(3)

          隨筆分類

          隨筆檔案

          文章分類

          相冊

          收藏夾

          Java Website

          java技術(shù)博客

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 巴塘县| 辽宁省| 伊春市| 夏津县| 阳城县| 长顺县| 昭苏县| 绍兴县| 城固县| 玉树县| 都江堰市| 南丹县| 甘泉县| 博客| 衡东县| 天长市| 固原市| 古丈县| 章丘市| 习水县| 张家港市| 奇台县| 霍邱县| 临夏县| 任丘市| 灵山县| 裕民县| 苏尼特右旗| 文水县| 泰安市| 祁东县| 习水县| 城固县| 黄大仙区| 华容县| 沈丘县| 泗水县| 蒙城县| 卓资县| 高碑店市| 巩留县|