Dip*_*rma 6 single-responsibility-principle use-case aggregation clean-architecture interactors
我想在我的项目域层(Clean MVVM )中实现单一职责原则。
我有大约 200 个不同的用例,管理起来非常繁忙。现在我正在考虑创建一个UseCaseManager可以为我提供所需的UseCase基于Input&Output对象的对象。
我尝试了一种方法,但看起来不太好。我提到了一些示例代码,请帮助我如何将所有用例聚合到一个 UseCaseManager。
用例1:
public class ActualUseCase1 extends AsyncUseCase<Object3,Object4> {
public ActualUseCase1(SchedulerProvider schedulerProvider) {
super(schedulerProvider);
}
@Override
public Flowable<Object4> buildUseCaseFlowable(Object3 input) {
return Flowable.just(new Object4());
}
}
Run Code Online (Sandbox Code Playgroud)
用例2:
public class ActualUseCase2 extends AsyncUseCase<Object1, Object2> {
public ActualUseCase2(SchedulerProvider schedulerProvider) {
super(schedulerProvider);
}
@Override
public Flowable<Object2> buildUseCaseFlowable(Object1 input) {
return Flowable.just(new Object2());
}
}
Run Code Online (Sandbox Code Playgroud)
用例管理器:
public interface UseCaseManager<In, Out> {
<T> T getUseCase(In input, Out output);
}
Run Code Online (Sandbox Code Playgroud)
T 可以是具有不同输入和输出对象的不同用例。
UseCaseManagerImpl:
public class UseCaseManagerImpl implements UseCaseManager {
@Override
public Object getUseCase(Object object1, Object object2) {
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
现在这是主要问题,我无法理解。我如何实现 getUseCase 方法。