簡單工廠模式 - 優缺點
模式的核心是工廠類,這個類負責產品的創建,而客戶端可以免去產品創建的責任,這實現了責任的分割。但由于工廠類集中了所有產品創建邏輯的,如果不能正常工作的話會對系統造成很大的影響。如果增加新產品必須修改工廠角色的源碼
//filename factory.h
#include <iostream>
#include <string>
class Car
{
public:
std::string Drive();
virtual std::string Stop() = 0;
};
class RedCar :public Car
{
public:
std::string Drive() {
return "RedCar is Drived";
}
std::string Stop() {
return "RedCar is Stoped";
}
} ;
class BlueCar :public Car
{ //一定要從寫父類,使用override
public:
std::string Drive() {
return "BlueCar is Drived";
}
std::string Stop() {
return "BlueCar is Stop";
}
} ;
//工廠類,來構造其實例
class CarFactory
{
//依賴類Car
public:
Car *Create(std::string CarType) {
if(CarType == "red") {
return new RedCar();
} else if(CarType == "blue" ) {
return new BlueCar();
} else
return nullptr;
}
};
使用實例:
#include "factory.h"
int main(){
CarFactory *carF = new CarFactory();
Car *car = carF->Create("red");//實例哪個類
return 0;
}