看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《rosemary0401 (rosemary0401)》之銘言: : 小妹最近再看Design pattern的相關知識, : 但卻不太清楚,用了這些pattern會有什麼好處,反而覺得更加得複雜了。 : 故想跟各位前輩請教, : Abstract Factory實際上就是多個Factory Method是嗎? : 能不能舉個例子,如果沒有Abstract Factory或是沒有Factory Method會帶來什麼不便? : 謝謝 雖然他們都有「工廠」兩個字,不過目的卻不太一樣: ┌──┬─────────┬──────────┐ │名稱│工廠方法 │抽象工廠 │ ├──┼─────────┼──────────┤ │目的│規定物件的製程。也│為了產出不同組合的物│ │ │就是在使用物件前依│件,有點像速食店套餐│ │ │序呼叫不同的成員函│的概念。 │ │ │式完成準備的工作。│ │ └──┴─────────┴──────────┘ 可以說工廠方法著重在產品的多型,抽象工廠著重在工廠的多型。 與其說會造成什麼不便,先來講講為什麼 Design Patterns要莫名 多一堆介面好了: 1.操作統一 因為規定了子類別一定要實現的操作,所以使用上可以一視同仁 嗯..就是這麼簡單, 而且因為多型的支援, 你可以任意增加不同的 類別完成新功能,而無須改動太多原本的程式碼。 ───────────────────────────── 使用設計模式就好像在烹調各式各樣的菜餚,你可以跟人家說你煮 的是「步步高升」,而不用講「一湯匙米酒+兩湯匙冰糖+三湯匙 ..」。 設計模式就是食譜,大概說明了每道菜的材料以及作法,直接拿來 套用總比你想到什麼就加什麼來得保險;不過像四川菜泰國菜還是 要依照家人口味調整香料的比例。而且「六菜碗」也不適合在新年 的時候準備。 有互動的類別形成一個模組,他們以介面為協定來溝通,所以仔細 了解介面存在的原因,妳要改良成家常菜也不是多麼困難的事情! 雖然例子網路上找得到很多,還是要透過實作以及遇到需求變更才 能體會它為我們帶來「不用修改太多程式」的便利性,現階段Head First Design Patterns、GoF 的 Design Patterns 花時間讀過一 便有個概念就好,覺得可能需要用到再回來翻一下,真正有收穫的 應該是 ─ 解決問題的時候。 ───────────────────────────── 找個簡單又剛好是 C++的例子真不容易,我看過最好懂的應該是 Head First Design Patterns上的範例了,剛剛轉譯程式碼轉到快 瘋掉,只好放棄... 有興趣可以參考它上面的第四章,以及範例程式(java) 網路版: http://ppt.cc/YrW4 程式碼: http://ppt.cc/zY!i -- ◢████ ◢█ ◢██◣ ◢█ ◢███ ◢█ T-ara版怎麼去 ████◢█████s ~> T-ara ███ █ ◢█歡迎您的光臨 ███████████恩靜智妍孝敏 ███ ██ 素妍居麗寶藍 ████◥██◤ █████ψmakigoto123 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.121.197.115
purpose:推。看完有比較懂一點了,但還沒完全理解,晚點再翻翻資料 11/28 03:36
nowar100:m 11/28 10:26
rosemary0401:有比較了解 謝謝您 11/28 11:11
yoco315:謝謝愛我大大,看完之後有比較了解了 11/28 12:44
softwind:太抽象了啦 有沒有sample... 11/28 13:46
晚點補上@_@
tomap41017:大大太厲害了,受小弟一拜 11/28 14:48
hilorrk:稍微有點頭緒了 謝謝大大的講解 11/28 16:47
james732:我之前也弄不清楚,推! 11/28 16:48
VictorTom:路過看不懂也推~~ 11/28 20:51
purpose:剛稍微查了一下,HFDP 歐萊禮的出版日期是2004,到底2008 11/29 01:20
purpose:是什麼意思還是搞不懂... 11/29 01:20
purpose:StackOverflow 站長的 HFDP 書評:http://goo.gl/qFADs 11/29 01:23
那為了避免爭議放品質比較好的2004好了 XD 電子書倒是2008 偏多, 內容也沒什麼差別. ※ 編輯: loveme00835 來自: 140.121.197.115 (11/29 02:22)
purpose:這版不錯,謝了 11/29 02:39