设计模式之适配器写接口

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012045045/article/details/84778157

我们提供一个统一的接口,根据一个参数字段来判断真正执行的是哪个类。上代码。

接口规范:


package com.cmbc.smp.orgBatchManageApi.adapter; 

public interface IAdapter<R,P> { 

//查询方法 
public R search(P params); 

} 

之前的接口封装map:

package com.cmbc.smp.orgBatchManageApi.adapter; 

import java.util.Map; 

@SuppressWarnings("rawtypes") 
public class AdapterMap { 

private Map<String, IAdapter> adapterImplMap; 

public Map<String, IAdapter> getAdapterImplMap() { 
return adapterImplMap; 
} 

public void setAdapterImplMap(Map<String, IAdapter> adapterImplMap) { 
this.adapterImplMap = adapterImplMap; 
} 

public IAdapter getAdapterImpl(String bizType) { 
return adapterImplMap.get(bizType); 
} 


} 

controller:

package com.cmbc.smp.orgBatchManageApi.adapter; 

import javax.annotation.Resource; 

import com.cmbc.smp.model.request.api.PublicRequest; 
import com.tesla.framework.core.Context; 
import com.tesla.framework.function.Action; 



public class SeachOrgByIdsController implements Action { 

@Resource(name = "adapterMaps") 
private AdapterMap adapterMap ; 

@SuppressWarnings({ "rawtypes", "unchecked" }) 
@Override 
public void execute(Context context) { 

//请求参数 

PublicRequest req =new PublicRequest(context); 

if(!req.check()){ 

return; 

} 

//实现类 
IAdapter adapterImpl =adapterMap.getAdapterImpl(req.getBizType()); 

//查询 
adapterImpl.search(context); 

return; 

} 

} 

配置文件:

<!-- 适配器实现类 初始化bean --> 
<bean id="batch_select_sub_bra_by_ids" class="com.cmbc.smp.orgBatchManageApi.adapter.BatchSubBraSearchByIdsAdapterImpl"></bean> 
<bean id="batch_select_emp_by_ids" class="com.cmbc.smp.orgBatchManageApi.adapter.BatchEmpSearchByIdsAdapterImpl"></bean> 
<bean id="batch_select_manager_by_ids" class="com.cmbc.smp.orgBatchManageApi.adapter.BatchManagerSearchByIdsAdapterImpl"></bean> 
<bean id="batch_get_sub_bra_for_import" class="com.cmbc.smp.orgBatchManageApi.adapter.BatchSubBraSearchByCodesAdapterImpl"></bean> 
<bean id="bra_off_rec_sub_bra_by_name" class="com.cmbc.smp.orgBatchManageApi.adapter.BatchSubBraSearchByNameAdapterImpl"></bean> 


<bean id="adapterMaps" class="com.cmbc.smp.orgBatchManageApi.adapter.AdapterMap"> 
<property name="adapterImplMap"> 
<map key-type="java.lang.String"> 
<entry key="bra_off_rec_sub_bra" value-ref="batch_select_sub_bra_by_ids" /> 
<entry key="bra_off_rec_emp" value-ref="batch_select_emp_by_ids" /> 
<entry key="bra_off_rec_manager" value-ref="batch_select_manager_by_ids" /> 
<!-- 根据支行代码批量查找支行id --> 
<entry key="batch_get_sub_bra_for_import" value-ref="batch_get_sub_bra_for_import" /> 
<entry key="bra_off_rec_sub_bra_by_name" value-ref="bra_off_rec_sub_bra_by_name" /> 

</map> 
</property> 
</bean>

猜你喜欢

转载自blog.csdn.net/u012045045/article/details/84778157