package com.ard.device.component.sdk.factory; import com.ard.device.component.sdk.common.FactoryType; import com.ard.device.component.sdk.dh.service.impl.DaHuaSDK; import com.ard.device.component.sdk.hik.service.impl.HikVisionSDK; import com.ard.device.component.sdk.service.CameraSDK; import org.springframework.stereotype.Component; import javax.annotation.Resource; /** * @Description: SDK策略工厂类 * @ClassName: SdkStrategyFactory * @Author: 刘苏义 * @Date: 2023年11月07日10:53:00 **/ @Component public class CameraSDKFactory { @Resource private HikVisionSDK hikvisionSDK; @Resource private DaHuaSDK dahuaSDK; /** * 根据传入的工厂参数创建相应的相机SDK实例 * * @param factory 工厂参数,用于确定要创建的相机SDK类型 * @return 创建的相机SDK实例 * @throws IllegalArgumentException 如果传入的工厂参数不支持 */ public CameraSDK createCameraSDK(String factory) { FactoryType factoryType = FactoryType.fromCode(factory); switch (factoryType) { case HIKVISION: return hikvisionSDK; case DAHUA: return dahuaSDK; default: throw new IllegalArgumentException("Unsupported device: " + factory); } } }