package com.application.zhangshi_app_android.data;
|
|
import androidx.annotation.NonNull;
|
|
import com.android.app_base.base.model.BaseModel;
|
import com.application.zhangshi_app_android.data.source.HttpDataSource;
|
import com.application.zhangshi_app_android.data.source.LocalDataSource;
|
import com.application.zhangshi_app_android.data.source.http.HttpDataSourceImpl;
|
import com.application.zhangshi_app_android.data.source.local.LocalDataSourceImpl;
|
|
import io.reactivex.Observable;
|
import io.reactivex.Observer;
|
|
/**
|
* @author Ljj
|
* @date 2023.03.01. 20:58
|
* @desc 数据仓库,包含网络数据和本地数据
|
*/
|
public class DataRepository extends BaseModel implements HttpDataSource, LocalDataSource {
|
|
private volatile static DataRepository INSTANCE = null;
|
private final HttpDataSource mHttpDataSource;
|
private final LocalDataSource mLocalDataSource;
|
|
private DataRepository(@NonNull HttpDataSource httpDataSource,
|
@NonNull LocalDataSource localDataSource) {
|
this.mHttpDataSource = httpDataSource;
|
this.mLocalDataSource = localDataSource;
|
}
|
|
public static DataRepository getInstance() {
|
if (INSTANCE == null) {
|
synchronized (DataRepository.class) {
|
if (INSTANCE == null) {
|
INSTANCE = new DataRepository(HttpDataSourceImpl.getInstance(), LocalDataSourceImpl.getInstance());
|
}
|
}
|
}
|
return INSTANCE;
|
}
|
|
|
@Override
|
public void onCleared() {
|
HttpDataSourceImpl.destroyInstance();
|
LocalDataSourceImpl.destroyInstance();
|
INSTANCE = null;
|
}
|
|
/**
|
* @see HttpDataSourceImpl
|
*/
|
|
|
/**
|
* @see LocalDataSourceImpl
|
*/
|
}
|