[概念] 請問factory pattern

看板OOAD作者 (累人啊....)時間13年前 (2011/11/17 14:57), 編輯推噓1(1010)
留言11則, 3人參與, 最新討論串1/2 (看更多)
請問,類似這樣的例子 class human{...}; class blackhuman:public human{}; class whitehuman:public human{}; class factory{...} 應用時,語法類似這樣 human man1=factory.create(blackhuman); human man2=factory.create(whitehman); 以這樣的方式產生物件,但blackhuman及whitehuman擁有的一些特定的屬性值 不是就因此被丟棄了嗎?那產生出來的man1及man2又有何獨特性? 煩請說明一下,謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.251.175.13

11/17 21:06, , 1F
factory 也要分成 black / white factory
11/17 21:06, 1F

11/17 21:06, , 2F
藉由不同的 factory 產生 不同的 man
11/17 21:06, 2F

11/17 21:07, , 3F
但重點是 多型 ----> 也就是同依個介面
11/17 21:07, 3F

11/17 21:08, , 4F
比如 factory = (factory)white_factory
11/17 21:08, 4F

11/17 21:08, , 5F
也就是 你的主要程式都在操作 factory
11/17 21:08, 5F

11/17 21:09, , 6F
但實際上這個 factory 可能是 white / black
11/17 21:09, 6F

11/18 08:38, , 7F
所以它應該是要以abstract factory才對囉??
11/18 08:38, 7F

11/18 08:59, , 8F
不對啊,這樣那些屬性不是也不見了嗎?
11/18 08:59, 8F

11/22 19:31, , 9F
屬性應該封裝起來,這裡你要追求的是介面統一,
11/22 19:31, 9F

11/22 19:34, , 10F
使用human這個product的程式,不會在乎你有什麼屬性
11/22 19:34, 10F

11/22 19:35, , 11F
它追求所有human都有同樣的方法可用,是為多型
11/22 19:35, 11F
文章代碼(AID): #1EnB11gv (OOAD)
文章代碼(AID): #1EnB11gv (OOAD)