package com.ard.work.sdk.factory; import com.ard.work.sdk.dh.service.DaHuaSDK; import com.ard.work.sdk.fjr.service.FjrSDK; import com.ard.work.sdk.hb.service.HbSDK; import com.ard.work.sdk.hik.service.AbstractHikVisionSDK; import com.ard.work.sdk.hik.service.HikSDK; import com.ard.work.sdk.hp.service.HpSDK; import com.ard.work.sdk.service.CameraSDK; import com.ard.work.sdk.zlxd.service.ZlxdSDK; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Component; /** * @Description: SDK策略工厂类 * @ClassName: SdkStrategyFactory * @Author: 刘苏义 * @Date: 2023年11月07日10:53:00 **/ @Component public class CameraSDKFactory { @Autowired @Qualifier("hikSDK") private HikSDK hikSDK; @Autowired @Qualifier("dahuaSDK") private DaHuaSDK dahuaSDK; @Autowired @Qualifier("hpSDK") private HpSDK hpSDK; @Autowired @Qualifier("zlxdSDK") private ZlxdSDK zlxdSDK; @Autowired @Qualifier("hbSDK") private HbSDK hbSDK; @Autowired @Qualifier("fjrSDK") private FjrSDK fjrSDK; /** * 根据传入的工厂参数创建相应的相机SDK实例 * * @param factory 工厂参数,用于确定要创建的相机SDK类型 * @return 创建的相机SDK实例 * @throws IllegalArgumentException 如果传入的工厂参数不支持 */ public CameraSDK createCameraSDK(String factory) { switch (factory) { case "1": return hikSDK; case "2": return dahuaSDK; case "4": return zlxdSDK; case "5": return hpSDK; case "7": return hbSDK; case "8": return fjrSDK; default: throw new IllegalArgumentException("Unsupported device: " + factory); } } }