訂閱電子報
│
RSS訂閱
│
手機版
全站文章
iT邦幫忙
首 頁
新 聞
技 術
IT管理
研討會
iT邦幫忙
部落格
小7聚樂部
Download
apphome
個資法
新 聞
新 聞 專 題
即 時 新 聞
新 聞 簡 訊
技 術
產 品 報 導
技 術 專 題
IT 書 訊
IT管理
CIO
IT 人 物
專 欄
新 聞 總 覽
業 界 動 態
iThome Online提供免費電子報,現在就訂,最新IT訊息每日寄達。
iThome 每日新聞報
iThome 產品技術報
加入iThome Online會員,立即使用討論區、Blog等服務。
•
免費加入會員
•
登入
/
登出
•
管理會員帳號
•
忘記帳號密碼
•
聯絡客服
•
訂閱周刊
•
讀者服務
•
12' E政府專刊no.6(46)
•
12' 個資法專刊No2(45)
•
12' iTcloud No.2(44)
•
12' e政府專刊No.5(43)
•
12' 個資法專刊(42)
•
11' CIO專刊(41)
•
11' e教育專刊No.3 (40)
•
11' e政府專刊No.4 (39)
•
11'iTcloud專刊(38)
•
10' e教育專刊No.2 (37)
•
10'e政府專刊No.3 (36)
•
09'e政府專刊No.2 (35)
•
09'e教育專刊(34)
•
09'e政府專刊(33)
•
08'企業資安專刊-端點安全防護(32)
•
08'企業採購情報誌(31)
•
07'資訊安全技術應用專刊(30)
•
07' 新世代資料中心專刊(29)
•
07'企業資安技術應用專刊(28)
•
企業採購情報誌'06冬季號(27)
•
企業軟體技術應用專刊(25)
•
企業資安技術應用專刊(24)
設計模式反映問題的抽象分類
文/
林信良
2012-07-04
瞭解設計模式應著重在理解問題本質
林信良
因在網路上經營「良葛格學習筆記」(openhome.cc)而聞名,曾任昇陽教育訓練中心技術顧問、甲骨文教育訓練中心授權講師,目前為自由工作者,從事講師、技術書籍寫作與翻譯,專長為Java 程式開發相關技術教育訓練,研究興趣包括:程式語言、Web 相關開放原始碼框架。閒暇之餘記錄所學,技術文件涵蓋 C/C++、Java、Ruby/Rails、Python、JavaScript 等領域。
在Gof書中寫到,設計模式是在特定情境中,為解決通用設計問題的自定義物件互動說明。許多開發者將焦點放在解決,模式名稱成了解決方案的代名詞,甚至將說明用的具體程式實際當成複製、修改的對象,忽略了設計模式實際上反映語言面對領域需求時的常見問題,這些問題在解決時出現類似的思考流程,而設計模式是將思考流程抽象化後進行分類,每個分類都代表了問題的抽象集合。
瞭解設計模式是鑑古知今
儘管實際面對的程式需求各不相同,然而多數問題存在某些重複的相似性,設計模式是思考問題相似性的過程,將觀察到的相似性從實際問題中抽取出來,討論設計上如何解決抽取出的相似性,以求面對類似的具體問題時,可以有現成的抽象概念可以套用,以降低思考過程的複雜度。
舉例來說,圖形介面開發者在面對使用者版面配置需求時,曾思索物件間如何組合,以提供自由組合版面的彈性,動畫剪輯開發者在面對使用者圖片、影像剪接需求時,曾思索物件間如何組合以提供自由組合影片的彈性,測試框架開發者也曾思索物件間如何組合,以提供自由組合測試案例的彈性。
以上問題的相似性是「自由組合」,解決方案也呈現類似結構與行為,因而抽取出組合(Composite)模式的概念,日後若觀察到問題有自由組合的需求,組合模式就可提供現成抽象概念,免去探索解決方案的複雜過程。
某些程度上,設計模式有點像是管理學原則,許多管理書籍會從過往歷史探索某些公司或機構,從各個角度提出某種關鍵因素,巧妙地與歷史串接,起來論斷公司或機構的興衰成敗,閱讀管理書籍只是瞭解有哪些角度可以切入管理問題,而不是那些角度就是最佳觀點或解決方案。在經營中的公司或機構採用某些管理原則,或避開某些管理方式,也並不保證公司或機構必然興盛,或免於敗亡。
無論是從閱讀文件瞭解設計模式,或是在閱讀程式碼時發覺採用了某些模式,都得先理解需求的情境、問題的核心,也要瞭解文件或程式中出現的設計模式實作,也許僅是可能的解決方案之一,有時同一問題在不同應用程式中採用的模式可能不盡相同,就如同有些管理原則在不同公司體系中可能是相對的矛盾。
閱讀管理書籍,是在瞭解不同公司或機構經營時會有哪些問題,瞭解設計模式,是在瞭解應用程式開發過程中可能會遭遇哪些需求,兩者的共同點,都是如何從過往中抓出問題的核心。
1
/
2
/
3
•
6/20-6/21 Enterprise Cloud EXPO
企業雲資源應用博覽會與企業雲端論壇
•
2013 BlackBerry Enterprise Experience Forum-無庸置疑的企業行動化使命
•
2013 BrainShare Technology Forum Asia Pacific Tour
•
2013台灣三星 飯店與零售解決方案高峰會
•
2013 Java Developer Day
更多研討會
▼ ADVERTISEMENT ▼
▲ ADVERTISEMENT ▲
最新文章
【影片】iPhone 5最新廣告強調手機的音樂功能
(好樣der)
【天天動聽】不用掛VPN也能突破境外IP的限制聽歌。
(Linus)
05/24 精選五款限時免費軟體-用照片為生活留下記錄,結合了相本功能的行事曆軟體--PhotoCal with Event
(Linus)
Windows 8使用調查:逾半數使用者幾乎不用Metro程式
(好樣der)
雙槍客新選擇!HTC發表雙卡雙待手機Desire 600
(好樣der)
微軟更新YouTube for Windows Phone ,停用下載功能
(好樣der)
LINE用戶小心!假投票騙走Facebook帳密,網路釣魚持續上演
(好樣der)
【Angry Birds Space】普通/HD版,雙版本限免中!
(Linus)
Google 雲端硬碟更新App,新增掃描功能
(好樣der)
05/22 精選五款限時免費軟體-專為iPad所設計的雙視窗瀏覽聊覽器Dual Browser
(Linus)
最新文章
監看主機開啟連線 Ports 號的利器 – CurrPorts
(weithenn)
Twitter推出雙因素認證
(goodplayfun)
測試硬碟讀寫效能的好幫手 – CrystalDiskMark
(weithenn)
【送軟體】WinX DVD Ripper 得獎名單
(download)
研究:青少年對Facebook熱情略退,搭配非實名制的Twitter發言較自在
(tinalee)
微軟公布Xbox One主打一致性的遊戲體驗,搶攻客廳娛樂市場
(goodplayfun)
擔心小孩用電腦不專心亂看網站? 家長控制瀏覽網站的利器 – FocalFilter
(weithenn)
臺灣開發者爆料,Line內藏封鎖大陸敏感字眼機制
(goodplayfun)
Yahoo正式宣布以11億美元買下Tumblr,並承諾不搞砸
(goodplayfun)
【flickr】有沒有這麼誇張....flickr的網路相簿空間免費提升到1TB!
(onlyaway)
最新問答
當"觸控"碰上"Ultrabook", 您的軟體UX也跟上潮流了嗎?
(mars33)
有用過1&1 vps 的請進
(eason57)
防火牆被CBL列黑名單
(kobe8756)
政務委員張善政:不宜走在世界最前端當白老鼠
(bigcandy)
asp.net以dropdownlist分別連線7家資料庫,並在gridview中顯示出來
(candice242)
【518外包網】「現金十萬元大方送」活動開跑囉!
(kevinya69)
outlook 2007 收到的信寄件者顯示問題
(shiouwei85)
分享大小事-儲存要無限、無線要儲存,802.11ac搭配雲儲存讓平板與手機可以可無憂儲存!
(gric)
艾鍗學院 IT TRAINING │ 102年政府職業訓練 - ASP.NET(C#)程式與資料庫設計
(askembedded)
求職學習
(tony0326)
熱門主題
HDMI最遠的傳輸距離到多少?
(benevotech)
用網線延伸USB2.0可達50M
(benevotech)
讓KVM多電腦切換器連網管理
(benevotech)
只佔用1U(4.4cm)!LCD KVM可在機櫃操控16台PS/2與USB伺服器
(benevotech)
雙電腦共享印表機,免設定網路
(benevotech)
手寫在普通紙上,透過電腦同步顯示於投影機的簡報方案
(benevotech)
主動式USB2.0延長線,可串級或一次延伸達70米
(benevotech)
將VGA訊號加強傳輸到300公尺
(benevotech)
比特幣挖礦程式影響仍然龐大,現階段目標是針對熱門的社交程式發動新的攻擊
(eraysecure)
《總經理看資安趨勢》被APT攻擊後,該怎麼辦?
(trendlabs)
電週文化事業版權所有、轉載必究 •Copyright © iThome |
刊登廣告
|
授權服務
|
服務信箱
|
隱私權聲明與會員使用條款
|
關於iThome
|
|