Re: [問題] factory pattern

看板C_and_CPP作者 (綠豆嘉義人)時間14年前 (2011/11/19 03:29), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串5/7 (看更多)
p1,p2不見了你可以宣告static pointer... 如果你的factory create的instance還是基於某個base class, 那你還是可以用factory搭type casting ex. CBase* p1; A *p2; p1 = CFactory::CreateInstance(CFactory::Type_A); p2 = dynamic_cast<A*>(p1); p2->AOnlyXXX(); 或者用另外一種無腦暴力工廠... template <typename T> T* GetInstance() { return new T(); } ※ 引述《tyc5116 (累人啊....)》之銘言: : 恕刪,我把我的問題丟出來看看 : ※ 引述《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: 119.77.223.81
文章代碼(AID): #1Enh86ZT (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1Enh86ZT (C_and_CPP)