Re: [問題] factory pattern
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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 5 之 7 篇):