工厂模式简述

class Game {
public:
	Game() {}
	virtual ~Game() {}
	virtual void Play() {
		std::cout << "play game" << std::endl;
	}
};

class BasketBall : public Game {
	void Play() override { std::cout << "play basketball" << std::endl; }
};

class SocketBall : public Game {
	void Play() override { std::cout << "play socketball" << std::endl; }
};



class GameFactory {
public:
	GameFactory() {}
	virtual ~GameFactory() {}
	virtual Game* CreateGame() = 0;
};

class BasketBallFactory : public GameFactory {
public:
	Game* CreateGame() override {
		return new BasketBall();
	};
};

class SocketBallFactory : public GameFactory {
public:
	Game* CreateGame() override {
		return new SocketBall();   
	};
};

int main() {
	GameFactory* factory = new BasketBallFactory();
	Game* game = factory->CreateGame();  // 指向BasketBall
	game->Play();
	delete factory;
	delete game;
	factory = new SocketBallFactory();
	game = factory->CreateGame();
	game->Play();
	delete factory;
	delete game;
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值