// EditItemFactory.cpp - 工厂管理器 #include "diagramEditor/editItemFactory.h" #include "diagramEditor/busItemFactory.h" #include "diagramEditor/bayItemFactory.h" #include "diagramEditor/transItemFactory.h" #include #include EditItemFactory* EditItemFactory::getFactory(int itemType) { static std::map> factories; // 延迟初始化 if (factories.empty()) { factories[1] = std::make_unique(); factories[2] = std::make_unique(); factories[3] = std::make_unique(); } auto it = factories.find(itemType); if (it != factories.end()) { return it->second.get(); } return nullptr; }