編寫用來獲取數據的接口
public interface DataBase{
//改方法用來獲取數據
public void getData();
}
編寫具體負責獲取數據的類
public class SqlDataBase1 implement DataBase{
//該方法1用來獲取數據
public void getData(){
//以下是具體獲取數據的代碼
}
}
public class SqlDataBase2 implement DataBase{
//該方法2用來獲取數據
public void getData(){
//以下是具體獲取數據的代碼
}
}
1.接口注入
1.1編寫一個接口
public interface IBuiness{
public void createDI(DataBase);
}
1.2實現這個接口
public class Buiness implement IBuiness{
private DataBase db;
public void createDI(DataBase db){
this.db=db;
}
public void getData(){
db.getData();
}
}
1.3測試Test
public class TestBuiness{
private Buiness buiness=new Buiness();
public void getData(){
buiness.createDI(new SqlDataBase2());
buiness.getData();
}
}
2.Set注入
2.1編寫業務邏輯類
public class Buiness{
private DataBase db;
public void setDataBase(DataBase db){
this.db=db;
}
public void getData(){
db.getData();
}
}
2.2測試Test
public class Test{
private Buiness buiness=new Buiness();
public void getData(){
buiness.setDataBase(new SqlDataBase1());
buiness.getData();
buiness.setDataBase(new SqlDataBase2());
buiness.getData();
}
}
3.構造注入
public class Buiness{
private DataBase db;
public Buiness(DataBase ab){
this.db=db;
}
public void getData(){
db.getData();
}
}
3.2測試Test
public void Test(){
private Buiness buiness;
public void getData(){
buiness=new Buiness(new SqlDataBase1());
buiness.getData();
}
}