通過一個(gè)工廠來創(chuàng)建要?jiǎng)?chuàng)建的類
好處:
客戶端和具體實(shí)現(xiàn)類解耦
對(duì)于某些對(duì)象創(chuàng)建過程比較復(fù)雜的情況,我們也可以不去考慮(無需關(guān)心創(chuàng)建的過程)
不好:
簡(jiǎn)單工廠模式,增加新的功能是通過修改代碼來實(shí)現(xiàn)的,不符合開閉原則
類的職責(zé)過重,若這個(gè)類發(fā)生問題,會(huì)影響很多使用這個(gè)工廠的模塊
適用場(chǎng)景:
工廠類負(fù)責(zé)的對(duì)象比較少
客戶端只知道傳入工廠類的參數(shù),對(duì)于如何創(chuàng)建對(duì)象不關(guān)心
案例代碼
#includeusing namespace std;
class abstractFruit {public:
virtual void showName() = 0;
};
class Apple : public abstractFruit {public:
void showName() override {cout<< "i am apple"<< endl;
}
};
class Banana : public abstractFruit {public:
void showName() override {cout<< "i am Banana"<< endl;
}
};
class FruitFactory {public:
static abstractFruit* CreateFruit(string flag) {if (flag == "apple") {return new Apple;
} else {return new Banana;
}
}
};
void test01() {auto factory = new FruitFactory;
auto apple = factory->CreateFruit("apple");
auto banana = factory->CreateFruit("Banana");
apple->showName();
banana->showName();
}
int main() {test01();
return 0;
}
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧