1. 程式人生 > >設計模式-代理類proxy:一個介面多個實現類(基於spring框架)

設計模式-代理類proxy:一個介面多個實現類(基於spring框架)

根據前臺返回的不同引數,選擇一個介面不同的實現類來實現不同業務邏輯,我們用到了proxy代理類。

首先是spring.xml 配置檔案 如下:(proxy 表示代理類  ××ServiceImpl 表示實現類)

<bean id="介面名稱" >
        <property name="target" ref="proxy"></property>
    </bean>

<bean id="proxy“ class= ”代理類地址“>

 <property name="××ServiceImpl1" ref="××ServiceImpl1"></property>

 <property name="××ServiceImpl2" ref="××ServiceImpl2"></property>

</bean>

<bean id="××ServiceImpl1" class=""></bean>

<bean id="××ServiceImpl2" class=""></bean>

代理類程式碼

public class proxy implements 介面 {

//獲取兩個實現類

public 介面 ××ServiceImpl1 ;

public 介面 ××ServiceImpl

2 ;

//獲取不同實現類的成員變數 service

public 介面 service;

三者的get set 方法;

public 介面 getService(){

if(判斷使用哪個實現類的條件){

service = ××ServiceImpl1 ;

}else{

service = ××ServiceImpl12;

}

}

//通過getservice方法,可以呼叫不同的實現類的方法實現
    @Override
介面方法1{getService.介面方法1();   }
 @Override
介面方法2{getService.介面方法2();    }

}