设计模式-代理类proxy:一个接口多个实现类(基于spring框架)

根据前台返回的不同参数,选择一个接口不同的实现类来实现不同业务逻辑,我们用到了proxy代理类。

首先是spring.xml 配置文件 如下:(proxy 表示代理类  ××ServiceImpl 表示实现类)


       
   

 

代理类代码

public class proxy implements 接口 {

//获取两个实现类

public 接口 ××ServiceImpl1 ;

public 接口 ××ServiceImpl2 ;

//获取不同实现类的成员变量 service

public 接口 service;

 三者的get set 方法;

public 接口 getService(){

if(判断使用哪个实现类的条件){

service = ××ServiceImpl1 ;

}else{

service = ××ServiceImpl12;

}

}

}

 

具体实例如下:

一、applicationContext.xml中注册bean,代理类极其实现类都放在com.hd.impl.文件夹下,接口在com.hd文件夹IService

 代理类极其实现类注册:

 





代理类实现类继承




 

二、代理类代码

public class ServiceImplProxy implements IService{
       private IService service;//代理类中要使用的实现类

        private AServiceImpl aservice;

        private BServiceImpl bservice;        

    public AServiceImpl getAservice() {
        return aservice;
    }

    public void setAservice(AServiceImpl aservice) {
        this.aservice = aservice;
    }

    public BServiceImpl  getBservice() {
        return bservice;
    }

    public void setBservice(BServiceImpl  bservice) {
        this.bservice = bservice;
    } 

   //判断使用哪个实现类

   public IService getService(String param){

       if("a".equals(param)){       

            service = aservice;

       }else{

            service = bservice;

       }

   }

  public void A(String param){

     getService(String param).A();

   } 

 

}

 

 

 

 

 

 

你可能感兴趣的:(设计模式-代理类proxy:一个接口多个实现类(基于spring框架))