作者tyc5116 (累人啊....)
看板C_and_CPP
標題Re: [問題] factory pattern
時間Sat Nov 19 02:26:02 2011
恕刪,我把我的問題丟出來看看
※ 引述《mingtai1 (綠豆嘉義人)》之銘言:
: 既然你都把它定義為factory
: 怎麼又會說要隨時修改他create object的屬性 ?
以VC的元件來舉例
: class CBase {};----->Object
: class A:CBase {};----->ListBox,特有屬性Items
: class B:CBase {};----->Button,特有屬性Text
: class CFactory
: {
...
: };
: class CUser
: {
: void Foo() {
: CBase *p1;
: CBase *p2;
: p1 = CFactory::CreateInstance(CFactory::Type_A);
: p2 = Factory::CreateInstance(CFactory::Type_B);
p1,p2的Items及Text就不見了~~
可是我還會用到啊,而且會修改耶~
: p1-> ....
: p2-> ....
: .... other operations
: }
: };
我不太清楚以VC元件套用在這個問題上是不是適合,希望表達的夠清楚
在OOAD板上問的結果,似乎要以abstract factory方式,是嗎??
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.37.174.243
※ 編輯: tyc5116 來自: 114.37.174.243 (11/19 02:26)
※ 編輯: tyc5116 來自: 114.37.174.243 (11/19 02:27)
→ james732:我不懂為什麼你會想開一個同時做ListBox跟Button的工廠 11/19 02:29
→ tyc5116:最近在看相關的書,還沒有融會貫通,很直覺的就這樣想了 11/19 02:30
→ tyc5116:很奇怪嗎??? 11/19 02:30
→ james732:誇張一點的比喻,好像加油站兼賣咖啡,然後包裝成"液體" 11/19 02:30
→ hilorrk:因為design pattern聽起來很酷 套上去感覺很強XD 11/19 02:31
→ james732:你拿到了不知道是汽油還是咖啡的液體,然後想計算咖啡因? 11/19 02:31
→ tyc5116:剛接觸的確覺得滿酷的啊...XD 11/19 02:32
→ tyc5116:不然以這個例子來說的話,怎樣的方式可能比較好呢? 11/19 02:33
→ james732:我只知道,如果你覺得這個東西套到你的問題後很怪,那就 11/19 02:34
→ james732:不要硬套,design pattern絕不是什麼萬能藥 11/19 02:34
→ james732:你這串第一篇的firose板友就有推了,你的問題不適合工廠 11/19 02:37
→ james732:你會開一間公廠兼賣電腦、汽油、咖啡、雞排,然後用一樣 11/19 02:37
→ james732:的包裝出貨嗎? 11/19 02:38
→ tyc5116:喔喔...了解,沒有看到firose的推文.... 11/19 02:38
→ james732:當產品有共同性質或有相同介面,會比較適合用工廠模式 11/19 02:40