我想什麼做注射的抽象是有一個抽象,並通過抽象的參數。因此,如果有一天比翻新改進更好,我想切換它,這樣做很容易。雖然我不知道它是如何做到的。這裏是什麼,我想要做一個基本概述:我如何使用IOC容器像匕首2
public interface ApiClient{
Object getClient()
}
public class RetrofitClient implements ApiClient{
private static Retrofit retrofit = null;
@Override
public Retrofit getClient(){
if(retrofit == null){
OkHttpClient tokenInterceptor = new OkHttpClient.Builder()
.addInterceptor(new NetworkInterceptor())
.build();
retrofit = new Retrofit.Builder()
.baseUrl("www.hello.com")
.addConverterFactory(GsonConverterFactory.create())
.build();
}
}
}
然後,我想通過傳遞ApiClient作爲參數來使用它:
public class MyClass{
private ApiClient apiClient;
public MyClass(ApiClient apiClient){
this.apiClient = apiClient;
}
public void getSomeData(){
MyClient client = this.client.create(MyClient.class);
}
}
我需要注入RetrofitClient
到MyClass
的一些方法。 請建議一個國際奧委會容器的任何其他選擇和我將如何使用它來實現這一點,謝謝。
此鏈接提供更深入的描述於它是使用C#和城堡溫莎https://github.com/castleproject/Windsor/blob/master/docs/basic-tutorial.md