聚合 – 清洁体系结构中的单一责任原则,在一个UseCaseManager中
发布时间:2020-12-13 20:08:12 所属栏目:百科 来源:网络整理
导读:我想在我的项目域层(Clean MVVM)中实现单一责任原则. 我约. 200个不同的用例,管理起来非常繁忙.现在我想创建一个UseCaseManager,它可以根据Input amp;提供我所需的UseCase.输出对象. 我尝试了一种方法,但看起来不太好.我提到了一些示例代码,请帮助我如何将所
我想在我的项目域层(Clean MVVM)中实现单一责任原则.
我约. 200个不同的用例,管理起来非常繁忙.现在我想创建一个UseCaseManager,它可以根据Input& amp;提供我所需的UseCase.输出对象. 我尝试了一种方法,但看起来不太好.我提到了一些示例代码,请帮助我如何将所有UseCases聚合到一个UseCaseManager. UseCase1: 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()); } } UseCase2: 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()); } } UseCaseManager: public interface UseCaseManager<In,Out> { <T> T getUseCase(In input,Out output); } T可以是不同的UseCase,具有不同的In&出对象. UseCaseManagerImpl: public class UseCaseManagerImpl implements UseCaseManager { @Override public Object getUseCase(Object object1,Object object2) { return null; } } 现在这是主要问题,我无法理解.我该如何实现getUseCase方法.
我认为你正在重新发明
abstract factory pattern.谷歌将为你提供有关该主题的大量内容……
棘手的一点是你如何决定实例化和返回哪个子类型;这可以像switch语句一样简单,或者涉及查找表等.关键是你将逻辑隔离到一个地方,你可以对它进行单元测试. 一个更大的问题是 – 你如何最终得到200个子类? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读