設計模式面試與筆試題剖析(三)
Windows Media Player和RealPlayer是兩種常用的媒體播放器,它們的API結構和呼叫方法存在區別。現在你的應用程式需要支援這兩種播放器API,而且在將來可能還需要支援新的媒體播放器,請問如何設計該應用程式? |
參考解答:【個人觀點】
本題可使用介面卡模式和抽象工廠模式,參考類圖如下所示:
在該類圖中,我們為兩種不同的播放器提供了兩個具體工廠類MediaPlayerFactory和RealPlayerFactory,其中MediaPlayerFactory作為Windows Media Player播放器工廠,可以建立Windows Media Player的主視窗(MediaPlayerWindow)和播放列表(MediaPlayerList)(為了簡化類圖,只列出主視窗和播放列表這兩個播放器組成元素,實際情況下包含更多組成元素);RealPlayerFactory作為RealPlayer播放器工廠,建立RealPlayer的主視窗(RealPlayerWindow)和播放列表(RealPlayerList),此時可以使用抽象工廠模式,客戶端針對抽象工廠PlayerFactory程式設計,如果增加新的播放器,只需增加一個新的具體工廠來生產新產品族中的產品即可。由於需要呼叫現有API中的方法,因此還需要使用介面卡模式,在具體產品類如MediaPlayerWindow和MediaPlayerList呼叫Windows Media Player API中的方法,在RealPlayerWindow和RealPlayerList中呼叫RealPlayer API中的方法,實現對API中方法的適配,此時具體產品如MediaPlayerWindow、RealPlayerWindow等充當介面卡,而已有的API如MediaPlayerAPI和RealPlayerAPI是需要適配的適配者。
【作者:劉偉 http://blog.csdn.net/lovelion】
相關文章
- 設計模式面試與筆試題剖析(二)設計模式面試筆試
- 程式設計師進階之路之面試題與筆試題集錦(三)線上程式設計題程式設計師面試題筆試
- 程式設計師進階之路之面試題與筆試題集錦(一)程式設計師面試題筆試
- 【Java面試】Java設計模式面試題!Java設計模式面試題
- 前端面試&筆試&錯題指南(三)前端面試筆試
- C/C++ 程式設計員應聘常見面試試題深入剖析C++程式設計面試
- 新書出版 |《資料庫程式設計師面試筆試真題與解析》新書資料庫程式設計師面試筆試
- [面試專題]JS設計模式面試JS設計模式
- 設計模式常見面試題設計模式面試題
- HTML最新面試題(筆試面試題)HTML面試題筆試
- 筆試題目——程式設計題筆試程式設計
- 圖解Java設計模式-面試題圖解Java設計模式面試題
- 面試重點:設計模式(三)——工廠方法面試設計模式
- Scala 與設計模式(三):Prototype 原型模式設計模式原型
- 活動:送兩本《PHP 程式設計師面試筆試真題解析》PHP程式設計師面試筆試
- Python 筆試 面試題Python筆試面試題
- 雲端計算面試題筆試錦集,雲端計算實用面試題答案二面試題筆試
- 雲端計算面試題筆試錦集,雲端計算實用面試題答案一面試題筆試
- 20個設計模式和軟體設計面試問題設計模式面試
- 前端筆試題面試題記錄前端筆試面試題
- 新書出版 |《資料庫程式設計師面試筆試真題庫》新書資料庫程式設計師面試筆試
- 12個程式設計師筆試面試寶典程式設計師筆試面試
- Java設計模式學習筆記(三) 工廠方法模式Java設計模式筆記
- 設計模式面試 - Hamill設計模式面試
- 影像處理筆試面試題筆試面試題
- 面試、筆試提問問題面試筆試
- mybatis常見面試/筆試題MyBatis面試筆試
- Oracle面試、筆試常見題Oracle面試筆試
- Mysql中的筆試和麵試---常見面試題問與答MySql筆試面試題
- 前端筆試題面試題記錄(下)前端筆試面試題
- kafka 三高架構設計剖析Kafka架構
- 設計模式這話題,我面試又被問了設計模式面試
- 最新SS園設計模式例項剖析與深入解讀教程設計模式
- 記一次面試筆試題面試筆試
- 【轉】C++ 筆試面試題目C++筆試面試題
- 作業系統筆試、面試題作業系統筆試面試題
- java面試筆試題大彙總Java面試筆試
- 設計模式之單例模式(《JavaScript設計模式與開發實踐》讀書筆記)設計模式單例JavaScript筆記