#include "FlyWeifht.h" #include #include #include void testFlyWeight() { /* 创建炸弹工厂 */ BombFactory bombFactory; /* 需要的炸弹列表 */ std::vector> bombList = { {"普通炸弹", "红色", 10, 20, 5}, {"普通炸弹", "红色", 15, 25, 5}, {"普通炸弹", "蓝色", 20, 30, 7}, {"普通炸弹", "蓝色", 25, 35, 7}, {"普通炸弹", "红色", 30, 40, 5}, {"唯一炸弹", "金色", 50, 60, 10} }; std::list launchedBombs; for(auto it : bombList) { std::string type = std::get<0>(it); std::string color = std::get<1>(it); int x = std::get<2>(it); int y = std::get<3>(it); int speed = std::get<4>(it); if (type == "唯一炸弹") { UniqueBomb* pUniqueBomb = new UniqueBomb(type, color); pUniqueBomb->move(x, y, speed); LaunchBomb* bomb = new LaunchBomb(pUniqueBomb); bomb->move(x, y); launchedBombs.push_back(bomb); SPDLOG_INFO("-----------------------------"); } else { ShareBombBody* pShareBombBody = bombFactory.getShareBombBody(type, color); pShareBombBody->move(x, y, speed); LaunchBomb* bomb = new LaunchBomb(pShareBombBody); bomb->move(x, y); launchedBombs.push_back(bomb); SPDLOG_INFO("-----------------------------"); } } }