Re: [問題] factory pattern
既然你都把它定義為factory
怎麼又會說要隨時修改他create object的屬性 ?
一般設計上factory最多就是Create / init / 或是destroy
比較常見的用法應該是這樣( 不能compile, 看看即可)
class CBase {};
class A:CBase {};
class B:CBase {};
class CFactory
{
public:
enum Types { Type_A =0 , Type_B } ;
static CBase* CreateInstance(int type) {
if(type == Type_A ) return new A();
else if(type==Type_B) return new B();
else //... exception or assert
}
};
class CUser
{
void Foo() {
CBase *p1;
CBase *p2;
p1 = CFactory::CreateInstance(CFactory::Type_A);
p2 = Factory::CreateInstance(CFactory::Type_B);
p1-> ....
p2-> ....
.... other operations
}
};
※ 引述《tyc5116 (累人啊....)》之銘言:
: 請問,以factory pattern建立物件,如下
: http://codepad.org/DU5sLXpg
: 可以正確建立不同的物件
: 可是我怎麼取得obj1及obj2的屬性值呢?
: 也就是怎麼取得obj1在它為ObjectA所設定的ID,及obj2在它為ObjectB所設定的ID
: 這部份覺得怪怪的,在new出一個物件時給值,return出來時addr不是就遺失了嗎?
: 也就是類似這樣
: int* func()
: {
: int* num=0;
: *num=10;
: return num;
: }
: 又或者,透過ObjectA及ObjectB的ctor給值(還沒試)
: 但obj1和obj2又要如何取得值?
: 以及,屬性如何需要常常修改,又要如何處理呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 119.77.223.81
※ 編輯: mingtai1 來自: 119.77.223.81 (11/19 01:50)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 7 篇):