简单工厂获取实现类。
package com.gxkj.qsczzj.cszb.factory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Component;
import com.gxkj.qsczzj.cszb.service.SjzxIndiService;
import com.gxkj.qsczzj.cszb.service.SxIndiService;
import com.gxkj.qsczzj.cszb.service.SxVoucherService;
/**
* 使用工厂模式解耦业务层,符合开闭原则
* @Title: CszbServiceFactory.java
* @Package com.gxkj.qsczzj.factory
* @Description: Service工厂类。
* @author: admin
* @date: 2019年3月25日 上午9:28:27
* @version V1.0
*/
@Component
public class CszbServiceFactory {
@Autowired
@Qualifier("oldSxIndiService")
private SxIndiService odlService;
@Autowired
@Qualifier("newSxIndiService")
private SxIndiService newService;
@Autowired
@Qualifier("newSjzxService")
private SjzxIndiService newSjzxService;
@Autowired
@Qualifier("odlSjzxService")
private SjzxIndiService odlSjzxService;
@Autowired
@Qualifier("newSxVouService")
private SxVoucherService newSxVouService;
@Autowired
@Qualifier("oldSxVouService")
private SxVoucherService oldSxVouService;
/**
* 市县ServiceImpl
* @param flag 标识:new/old 新口径/旧口径
* @return
* 使用工厂模式制造对象,新的返回新口径的对象(实现类),旧的返回旧口径的对象(实现类)
*/
public SxIndiService getService(String flag) {
if(flag.equals("new")) {
return newService;
}else if(flag.equals("old")) {
return odlService;
}else {
// 预留以后新的实现,暂时返回旧的实现
return odlService;
}
}
/**
* 返回省级在线实现类
* 使用工厂模式制造对象,新的返回新口径的对象(实现类),旧的返回旧口径的对象(实现类)
* @param flag 标识:new/old 新口径/旧口径
* @return
*/
public SjzxIndiService getSjzxService(String flag) {
if(flag.equals("new")) {
return newSjzxService;
}else if(flag.equals("old")) {
return newSjzxService;
}else {
// 预留以后新的实现,暂时返回旧的实现
return odlSjzxService;
}
}
/**
* 市县拨付实现类
* @param flag
* @return
*/
public SxVoucherService getSxVouService(String flag) {
if(flag.equals("new")) {
return newSxVouService;
}else if(flag.equals("old")) {
return oldSxVouService;
}else {
// 预留以后新的实现,暂时返回旧的实现
return oldSxVouService;
}
}
}