物件導向轉接器 終於又進入新的篇章啦!這個轉接器與門面模式也是極度常見與好用(也頗好理解)的模式。首先轉接器,顧名思義,就是將介面轉換為另一個介面,以滿足用戶端...
物件轉接器與類別轉接器 類別轉接器的圖示則如下: 圖 1 所謂的類別轉接器需要用多重繼承來進行實作,可以看到圖中的差別,在於adapter在物件轉接器中,是...
前言 這個篇其實應該出現在一開始才對... 趁著在模式與模式的中間穿插介紹一下。雖然跟設計模式沒有直接關係,但因為想使用C++來做一些測試,選擇在擴充功能豐富的...
糖果機設計 經過轉接器模式後,先快轉進入到第十章─ 狀態模式。本章的舉例是目前有一台糖果機,想要設計一套軟體讓糖果機變成由軟體控制,要求包含在"投入2...
新設計 為了加入這個規則,會發現原本的方法全部都會被改到。那堆if-else都要重新加入新的狀態,可以看看違反了前面提到的哪些規則─ 沒有遵守開放/ 封閉原則,...
狀態模式優點 套用了狀態模式的糖果機程式,功能跟一開始的寫法相同,卻大幅增加了可維護性,因為它移除了那些複雜的if-else判斷,也可以維持封裝的特性─ 讓既有...
來杯飲料吧 接下來我們回過頭看第八章─樣板模式。現在我們來看泡茶與泡咖啡的例子,它們有許多共通點:例如這是泡咖啡的程式: /*程式碼待補*/ 而這是泡茶的程式...
掛勾 在一個樣板方法中,它的結構大概會長這樣: class AbstractClass { void templateMethod() {...
實際使用中的樣板方法 書中舉了 Java API 實際使用樣板方法的例子,其中一個是排序的sort()。sort()是一個靜態方法,而要使用這個排序方法,就要求...
心得 雖然還沒把整本書的內容都整理完,但鐵人30已經告一段落~回顧一下這本書總共14章,而這30篇涵蓋了1~8、10章的內容,剩下代理模式、複合模式,以及後面的...