亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

設計模式中文版

2019-11-18 12:17:59
字體:
來源:轉載
供稿:網友

  第1章 引 言
  
  設計面向對象軟件是較困難,而設計可復用的面向對象軟件就更加困難。你必須找到相
  
  關的對象,以適當的粒度將它們歸類,再定義類的接口和繼續層次,建立對象之間的基本關
  
  系。你的設計應該對手頭的問題有針對性,同時對將來的問題和需求也要有足夠的通用性。
  
  你也希望避免重復設計或盡可能少做重復設計。有經驗的面向對象設計者會告訴你,要一下
  
  子就得到錄用性和靈活性好的設計,即使不是不可能的至少也是非常困難的。一個設計在最
  
  終完成之前常要被亙用好幾次,而且每一次都有所修改。
  
  有經驗的面向對象設計者的確能做出良好的設計,而新手則面對十多選擇無從下手,總
  
  是求助于以前使用過的非面向對象技術。新手需要花費較長時間領會良好的面向對象設計是
  
  怎么回事。有經驗的設計者顯然知道一些新手所不知道的東西,這又是什么呢?
  
  內行的設計者知道:不是解決任何問題都要從頭做起。他們更愿意是用以前使用過的解
  
  決方案。當找到一個好的解決方案,他們會一遍又一遍地使用。這些經驗是他們成為內行的
  
  部分居因。因此,你會在許多面向對象系統中看到類和相互通信的對象(communicating
  
  obect) 的重亙模式。這些模式解決特定的設計問題,便面向對象設計更靈活、優雅,最終亙
  
  用性更好。它們幫助設計者將新的設計建立在以往工作的基礎上,是用以往成功的設計方案。
  
  一個熟悉這些模式的設計者不需要再去發現它們,而能夠立即將它們應用于設計問題中。
  
  以下類仕可以幫助說明這一點。小說家和劇本作家很少從頭開始設計劇情。他們總是沿
  
  襲一些業已存在的模式,像“悲劇性英雄”模式(《麥克白》、《哈姆雷特》等)或“浪漫小說”
  
  模式(存在著無數浪漫小說)。同樣地,面向對象設計員也沿襲一些模式,像“用對象表示狀態”
  
  和“修飾對象以便于你能輕易地添加刪除屬性”等。一旦懂得了模式,許多設計決策自然而
  
  然就產生了。
  
  我們都知道設計經驗的重要價值。你曾經多少次有過這種感覺——你已經解決過了一個問
  
  題但就是不能確切知道是在什么地方或怎么解決的?假如你能記起以前問題的細節和怎么解
  
  決它的,你就可以亙用以前的經驗而不需要重新發現它。然而,我們并沒有很好記錄下可供
  
  他人使用的軟件設計經驗。
  
  這本韋的目的就是將面向對象軟件的設計經驗作為設計模式記錄下來。每一個設計模式
  
  系統地命名、解釋和評價了面向對象系統中一個重要的和重復出現的設計。我們的目標是將
  
  設計經驗以人們能夠有效利用的形式記錄下來。鑒于此目的,我們編寫了一些最重要的設計
  
  模式,并以編目分類的形式將它們展現出來。
  
  設計模式使人們可以更加簡單方便地是用成功的設計和體系結構。將已證實的技十表述
  
  成設計模式也別主新系統開發者更加輕易理解其設計思路。設計模式幫助你做出有利于系統
  
  是用的選擇,避免設計損害了系統是用性。通過提供一個顯式類和對象作用關系以及它們之
  
  間潛在聯系的說明規范,設計模式甚至能夠提高已有系統的文檔治理和系統維護的有效性。
  
  簡而言之,設計模式可以幫助設計者更快更好地完成系統設計。
  
  本韋中涉及的設計模式并不描述新的或未經證實的設計,我們只收錄那些在不同系統中
  
  多次使用過的成功設計。這些設計的絕大部分以往并無文檔記錄,它們或是來源于面向對象
  
  設計看圈子里的非正式交流,或是來源于某些成功的面向對象系統的某些部分,但對設計新
  
  手來說,這些東西是很難學得到的。盡管這些設計不包含新的思路,但我們用一種新的、便
  
  于理解的方式將其展現給讀者,即:具有統一格式的、已分類編目的若干組設計模式。
  
  盡管該韋涉及較多的內容,但韋中討論的設計模式僅僅包含了一個設計行家所知道的部
  
  分。韋中沒有討論與并發或分布式或實時程序設計有關的模式,也沒有收錄面向特定應用領
  
  域的模式。本韋并不預備告訴你怎樣構造用尸界面、怎樣寫設備驅動程序或怎樣使用面向對
  
  象數據庫,這些方面都有自己的模式,將這些模式分類編目也是件很有意義的事。
  
  
  
  什么是設計模式
  
  Christopher Alexander說過:“每一個模式描述了一個在我們四周不斷重復發生的問題,
  
  以及該問題的解決方案的核心。這樣,你就能一次又一次地使用該方案而不必做重亙勞動”
  
  [IS477,第10頁]。盡管Alexander所指的是城市和建筑模式,但他的思想也同樣適用于面向
  
  對象設計模式,只是在面向對象的解決方案里,我們用對象和接口代替了墻壁和門窗。兩類
  
  模式的核心都在于提供了相關問題的解決方案。
  
  一般而言,一個模式有四個基本要素:
  
  1 模式名稱(Patternname)一個助記名,它用一兩個詞來描述模式的問題、解決方案
  
  和效果。命名一個新的模式增加了我們的設計詞匯。設計模式答應我們在較高的抽象層次上
  
  進行設計?;谝粋€模式詞匯表,我們自己以及同事之間就可以討論模式并在編寫文檔時使
  
  用它們。模式名可以幫助我們思考,便于我們與其他人交流設計思想及設計結果。找到恰當
  
  的模式名也是我們設計模式編目工作的難點之一。
  
  2 問題( PRoblem) 描述了應該在何時使用模式。它解釋了設計問題和問題存在的前因后
  
  果,它可能描述了特定的設計問題,如怎樣用對象表示算法等。也可能描述了導致不靈活設
  
  計的類或對象結構。有B引虞,問題部分會包括使用模式必須滿足的一系列先決條件。
  
  3 解決方案(solution) 描述了設計的組成成分,它們之間的相互關系及苦自的職責和協
  
  作方式。因為模式就像一個模板,可應用于多種不同場合,所以解決方案并不描述一個特定
  
  而具體的設計或實現,而是提供設計問題的抽象描述和怎樣用一個具有一般意義的元素組合
  
  (類或對象組合)來解決這個問題。
  
  4 效果(consequences) 描述了模式應用的效果及使用模式應權衡的問題。盡管我們描述
  
  設計決策時,并不總提到模式效果,但它們對于評價設計選擇和理解使用模式的代價及好處
  
  具有重要意義。軟件效果大多關注對時間和空間的衡量,它們也表述了語言和實現問題。因
  
  為是用是面向對象設計的要素之一,所以模式效果包括它對系統的靈活性、擴充性或可移植
  
  性的影響,顯式地列出這些效果對理解和評價這些模式很有幫助。
  
  出發點的不同會產生對什么是模式和什么不是模式的理解不同。一個人的模式對另一個
  
  人來說可能只是基本構造部件。本韋中我們將在一定的抽象層次上討論模式。《設計模式》并
  
  不描述鏈表和5。sh表那樣的設計,盡管它們可以用類來封裝,也可是用:也不包括那些復雜
  
  的、特定領域內的對整個應用或子系統的設計。本韋中的設計模式是對被用來在特定場景下
  
  解決一般設計問題的類和相二通信的對象的描述。
  
  一個設計模式命名、抽象和確定了一個通用設計結構的主要方面,這些設計結構能被用
  
  來構造可亙用的面向對象設計。設計模式確定了所包含的類和實例,它們的角色、協作方式
  
  以及職責分配。每一個設計模式都集中于一個特定的面向對象設計問題或設計要點,描述了
  
  什么時候使用它,在另一些設計約束條件下是否還能使用,以及使用的效果和如何取舍。既
  
  然我們最終要實現設計,設計模式還提供了C4十和Smalltalk示例代碼來闡明其實現。
  
  雖然設計模式描述的是面向對象設計,但它們都基于實際的解決方案,這些方案的實現
  
  語言是Smalltalk和C十個等主流面向對象編程語言,而不是過程式語言(Pascal、C、Ada)或更具
  
  動態特性的面向對象語言(CLOS、Dylan、Sel幾我們從實用角度出發選擇了Smalltalk和C十十,
  
  因為在這些語言的使用上,我們積累了許多經驗,況且它們也變得越來越流行。
  
  程序設計語言的選擇非常重要,它將影響人們理解問題的出發點。我們的設計模式采用了
  
  Smalltalk和C十個層的語言特性,這個選擇實際上決定了哪些機制可以方便地實現,而哪些則
  
  不能。若我們采用過程式語言,可能就要包括諸如“繼續”、“封裝”和“多態”的設計模式。
  
  相應地,一些非凡的面向對象語言可以亙接支持我們的某些模式,例如:OS支持多方法
  
  (multimethod)概念,這就減少了Vistor模式的必要性。事實上,Smalltalk和C++已有足夠的
  
  差別來說明對某些模式一種語言仕另一種語言表述起來更輕易一些(參見54節Iterator 模式)。
  
  Smalltalk MVC中的設計模式
  
  在Smalltalk-80中,類的模型/視圖/控制器(Model/View/Controller)三元組(MVC)被用來
  
  構建用尸界面。透過M V C來看設計模式將幫助我們理解“模式”這一術語的含義。
  
  MVC包括三類對象。模型Model應用對象

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
最新国产精品拍自在线播放| 一区二区三区视频在线| 蜜臀久久99精品久久久久久宅男| 91在线观看免费观看| 国产日韩欧美影视| 久久免费精品日本久久中文字幕| 日韩av在线免费看| 爱福利视频一区| 久久免费视频网| 国产精品免费电影| 国产精品成人品| 日韩在线播放一区| 亚洲一区二区三区在线视频| 日韩欧美中文字幕在线播放| 国产一区视频在线播放| 久久777国产线看观看精品| 久久精品最新地址| 久久99精品久久久久久青青91| 亚洲欧美一区二区精品久久久| 日韩精品高清在线| 亚洲成人精品视频| 一区二区三区 在线观看视| 亚洲精选在线观看| 欧美在线亚洲一区| 久久国产精品免费视频| 国产精品女人久久久久久| 欧美大码xxxx| 日韩女优在线播放| 国产精品永久免费观看| 国产精品88a∨| 亚洲v日韩v综合v精品v| 亚洲少妇激情视频| 成人羞羞国产免费| 国产精品都在这里| 欧美成人激情视频| 亚洲黄色免费三级| 亚洲精品v天堂中文字幕| 亚洲男人天堂2024| 久久人人爽人人爽爽久久| 欧美贵妇videos办公室| 日韩美女激情视频| 亚洲3p在线观看| 亚洲自拍高清视频网站| 日韩中文字幕在线视频播放| 欧美激情精品久久久久久| 国产九九精品视频| 成人黄色在线观看| 亚洲国产精品久久精品怡红院| 午夜伦理精品一区| 久久资源免费视频| 日本午夜在线亚洲.国产| 欧美成人激情视频| 国产在线视频一区| 成人中心免费视频| 亚洲色图第三页| 中文字幕综合在线| 中文国产成人精品| 国产精品电影在线观看| 上原亚衣av一区二区三区| 日韩欧美中文第一页| 一本色道久久88精品综合| 国产男人精品视频| 98视频在线噜噜噜国产| 欧美裸体视频网站| 亚洲精品国产免费| 国产精品h片在线播放| 色综合亚洲精品激情狠狠| 最近日韩中文字幕中文| 欧美成人午夜影院| 中文国产成人精品久久一| 色av吧综合网| 欧美亚洲另类激情另类| 欧美激情女人20p| 精品视频久久久久久久| 亚洲日本中文字幕免费在线不卡| 亚洲最大福利视频网| 欧美一级大片在线免费观看| 久久久伊人欧美| 欧美一级大片在线观看| 日韩成人中文字幕| 久久久久亚洲精品| 2019中文字幕免费视频| 日本精品视频在线播放| 国产成人综合av| 国产一区二区美女视频| 欧美激情高清视频| 亚洲天堂第一页| 国产精品自拍偷拍视频| 国产精品人成电影| www.99久久热国产日韩欧美.com| 毛片精品免费在线观看| 日韩电影免费观看在线观看| 久久精品国产一区二区三区| 欧美区在线播放| 亚洲国产精品电影在线观看| 欧美中文字幕在线视频| 欧美不卡视频一区发布| 久久综合久中文字幕青草| 欧美激情图片区| 国产视频综合在线| 色一情一乱一区二区| 久色乳综合思思在线视频| 亚洲精品国精品久久99热一| 欧美自拍大量在线观看| 国产精品久久久久久久app| 欧美疯狂做受xxxx高潮| 亚洲成人网在线| 日韩色av导航| 岛国av一区二区在线在线观看| 中文字幕亚洲一区二区三区五十路| 国产精品一区二区三| 中文字幕亚洲欧美| 日韩极品精品视频免费观看| 久久亚洲精品视频| 亚洲xxxx妇黄裸体| 成人亲热视频网站| 亚洲一区二区福利| 日本成人在线视频网址| 亚洲最新视频在线| 久久精品中文字幕| 国产97在线|日韩| 久久成人精品一区二区三区| 最近2019中文字幕大全第二页| 国产在线精品自拍| 亚洲精品国产品国语在线| 成人精品网站在线观看| 国产日韩精品视频| 精品中文字幕在线观看| 日韩理论片久久| 搡老女人一区二区三区视频tv| 国产一区二区三区日韩欧美| 精品亚洲精品福利线在观看| 国产精品久久久久久久app| 不卡在线观看电视剧完整版| 精品人伦一区二区三区蜜桃免费| 91av在线网站| 久久夜色撩人精品| 亚洲第一页中文字幕| 国内揄拍国内精品少妇国语| 久久久久成人精品| 一区二区欧美在线| 国产精品久久久久久久9999| 欧美猛男性生活免费| 国产xxx69麻豆国语对白| 国产精品免费一区豆花| 91精品国产91久久久久久最新| 久久精视频免费在线久久完整在线看| 亚洲乱码一区av黑人高潮| 欧美国产日韩一区| 精品亚洲精品福利线在观看| 亚洲精品国产精品自产a区红杏吧| 国模吧一区二区| 视频在线观看一区二区| 欧美老少做受xxxx高潮| 欧美成人免费全部观看天天性色| 国产精品视频精品| 亚洲精品久久久一区二区三区| 亚洲毛茸茸少妇高潮呻吟| 日韩中文综合网| 亚洲天堂免费在线| 国产精品一区专区欧美日韩| 日本精品视频在线观看| 亚洲视频电影图片偷拍一区| 欧美xxxx18性欧美|