設計模式群中的一個疑問

          設計模式群23998319。對設計模式不感興趣的勿擾。謝謝!。
          昨天新人報道,問了幾個問題。

          問:什么是設計模式?我一直以為做軟件只需要 語言+數(shù)據(jù)結構。
          有人這樣回答,我理解數(shù)據(jù)結構也是一種設計模式。
          不過這個我并不茍同。
          我所認為數(shù)據(jù)結構是面向最底層的,而設計模式是面向應用開發(fā)的一種策略。數(shù)據(jù)結構是解決的如何實現(xiàn),而設計模式是在此實現(xiàn)上面向應用的一種開發(fā)策略。

          又問設計模式僅僅是針對復用? 
          回答:不是僅僅針對復用 擴展啦  還有測試等等,當時自己也就只能想到這些。


          提問者 設計模式有什么用?開始看到設計模式這四個字心里總想知道這個問題,不過當真的知道了,就會覺得問這個問題有點傻......(恨不得拿頭去撞墻......) 
           設計模式有什么用?設計模式說白了就是一種前人設計代碼或者說軟件總結出來的模板(很有用的)。我們學習它就是問了經(jīng)驗復用。為了讓自己的代碼能更好的適應變化,提高程序的可維護性和可擴展性。學寫代碼就是這樣,就是用別人的經(jīng)驗和權威的原則寫出能解決客戶需求的代碼,雖然創(chuàng)新思維是好東西,沒必要什么都自己來創(chuàng)造,不可以總結造電燈,自己造個編程語言再自己開發(fā)代碼。所以學習前者的經(jīng)驗是我們的主流。
           我們是基于一些OOP是設計原則根據(jù)不同的需求通過不同的設計模式來到底所說的:更好的適應變化,提高程序的可維護性和可擴展性。 
           
          我答:可能你現(xiàn)在開發(fā)的軟件針對現(xiàn)在的形式是很適合的,但是當你要進行功能或行為上的擴展的話,松耦合的設計就可以使你不必修改多個類來,擴展功能了。其實現(xiàn)在的很多程序員并沒有真正的OO 。也包括我,都是針對要求去實現(xiàn)寫特定的類,所以我總認為,在編碼前面的建模還有分析是很重要的。 

          又問:建模就是建立"模式"? 
          答 這個“模”不是模式  是模型。就和建筑上的畫圖差不多 


          又問:模型就是指軟件的構造(結構)組成對吧?
          答:恩  還有構建之間的關系,消息通訊等。


           每一次的提問和回答都最自己的知識有所提高。讓我思考更多,比如在問什么是模型的時候,這個確實自己也吃不準。在以前的學習中并沒解釋過,是很虛幻的概念,可意會不可言傳的東西。按照我的理解就是通常建筑上開始時候的設計。

          posted on 2009-01-16 09:46 duduli 閱讀(1655) 評論(2)  編輯  收藏 所屬分類: 設計模式

          評論

          # re: 設計模式群中的一個疑問 2009-01-18 10:34 Daniel.Shi

          1.數(shù)據(jù)結構是“面向底層”的描述不準確,在具體分層架構中才有底層和上層,數(shù)據(jù)結構研究的是針對具體問題的算法,使用之處不存在“底層”之說。例如表現(xiàn)層也是需要使用數(shù)的算法的,對吧
          2. 模式:事物的標準樣式。模式就是從日常設計中總結出經(jīng)典的模板,目的就是為了讓經(jīng)典得以復用,不管是復用在什么場景下(設計、編碼、測試)。
          3. 模型除了對象結構外,還有關系和條件(限制)。
          4. 耦合是很“文”的叫法,說白了就是關系。松耦合,就是弱化關系,我的變化盡量少的影響到你。

          另外希望強調的是,所說的設計模式、建模,都是在說面向對象的設計模式、面向對象的建模,因為模式在面向對象成熟之前就已經(jīng)產(chǎn)生,面向對象的發(fā)展實際就是從非面向對象語言上總結了很多的模式而來。ER建模是也建模,數(shù)據(jù)庫的模型依然是會涉及到(實際上一般即使用了ORM,也還要涉及ER模型)。建的模,是在特定技術領域中的模型。在數(shù)據(jù)庫技術上,即使你用OO建模,依然要轉換成數(shù)據(jù)庫模型、數(shù)據(jù)庫的語言——我們是受到平臺和技術的限制的。
          理論上,OO和模式是好的方向,但是實際過程中往往還是需求非OO(表現(xiàn)層語言)和反模式(涉及數(shù)據(jù)庫性能的時候)。不要盲目OO和模式至上,做到完全的面向接口,那么才是最高的境界。  回復  更多評論   

          # re: 設計模式群中的一個疑問 2009-01-18 13:14 nokiaguy

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


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導航:
           
          <2009年1月>
          28293031123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          導航

          統(tǒng)計

          公告

          welcome to my place.

          常用鏈接

          留言簿(5)

          我參與的團隊

          隨筆分類

          隨筆檔案

          新聞分類

          石頭JAVA擺地攤兒

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          @duduli
          主站蜘蛛池模板: 康乐县| 高雄市| 子长县| 饶平县| 天津市| 金华市| 德州市| 马鞍山市| 亳州市| 镇江市| 启东市| 紫云| 资源县| 清流县| 留坝县| 信丰县| 汾阳市| 渑池县| 长阳| 灵璧县| 星座| 东宁县| 安岳县| 昭苏县| 农安县| 上饶县| 汕头市| 丹寨县| 涞水县| 大港区| 凤阳县| 天台县| 沾化县| 木兰县| 宝山区| 深泽县| 县级市| 莱阳市| 邢台县| 望谟县| 铜陵市|