基服务类AbstractService<ZextendsBaseModel>implementsAdapterConfig<Z>

1:其中接口 AdapterConfig内的方法,有抽象类 AbstractService及其实现类,共同完成重写(可以重复,但要完整.)
所以抽象类 AbstractService中没有重写的方法要在其实现类中重写.
实现类中没有重写的方法,要在抽象类中重写.
具体看需求,一般来讲 通用的写在抽象类中,特殊的写在实现类中.
2:这里AdapterConfig正常来讲,应该是BaseService,AbstractService应该是BaseServiceImpl.
因为用到适配器模式,所以这里的接口BaseService就换成了 AdapterConfig.该接口内提供了获取具体实现增删改查,批量,及其他的方法以及
获取SiebelAdaper类对象的方法.
具体看第三方适配器包:
com.xxxxx.crm.thirdparty.adapter --相当于另一套规范
1:接口 Adapter.java
–适配器接口
—方法太多了,我就不写了增删改查,批量,invokeBs,MVG,pickList
AdapterConfig.java
–适配器装配置接口
2:类 AdapterFactory.java
–适配器选择工厂类(可以根据不同的工厂生产不同的适配器。
具体选择,在配置文件内:adapter.classname 可以有其他值)
SiebelAdapter.java
– 适配器实现类,具体干事的类。

//这里基服务类 实现了适配器配置类,要获得对应的适配器. 					
public abstract class **AbstractBase**<Z extends BaseModel> implements **AdapterConfig**<Z>{

		public static  final Logger logger =  LoggerFactory.getLogger(AbstractBase.class);
		//1:获得适配器
		public final Adapter<Z> adapter = (Adapter<Z>) AdapterFactory.getAdapter();
		public Adapter<Z> getAdapter() throws Exception{
			if(adapter == null ){ throw new Exception("未提供连接远程数据服务器的适配器"); }
			if(adapter.getConfig() == null){ adapter.setConfig(this);}
			return adapter;
		}
		//2;方法执行耗时计算
		private String timerCount(long timer){
					timer = System.currentTimeMills() - timer ;
					return "Siebel 运行耗费 = [" +timer+"ms]";
		}
		//列表相关
		//3.通过model查询,取得数据的列表
		public  List<Z> getList(Z model) throws Exception{
				try{
						long timer =  System.currentTimeMillis();//方法执行前时间.
						List<Z> retObj = getAdapter().getList(model);
						logger.info(  timerCount(timer) );
						return retObj;
				}catch(Exception e){
				logger.error( e.getMessage());
				throw e;
				}
		}
			//:通过BS查询,取得数据的列表 
		public List<Z> getListByBS(Z model) throws Exception{
				try{
						long timer =  System.currentTimeMillis();//方法执行前时间.
						List<Z> retObj = getAdapter()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值