我具有以下层次结构
名为
的双重通用类public class Service<T,U>
{
private final Supplier<T>
private final Function<T,U>
private final Consumer<U>
// more fields and methods ...
}
该类ServiceBuilder<T,U>
的构建器,具有通常用于构建器的流利API
public class ServiceBuilder<T,U>
{
private Supplier<T> supplier;
private Function<T,U> mapper;
private Consumer<U> consumer;
// more fields and methods ....
public ServiceBuilder<T,U> withSupplier(Supplier<T> supplier)
{
this.supplier = supplier;
return this;
}
// more fields and methods ....
public Service<T,U> build()
{
return new Service(supplier,mapper,consumer);
}
}
基于此,我想提供一个易于使用的T供应商,比方说DummySupplier
public class DummySupplier implements Supplier<SomeObject>
{
public SomeObject get()
{
return new SomeObject();
}
}
我希望有一个ServiceBuilder<SomeObject,T>
可以利用此供应商,可以有效地修复T
,这样我只需要一个Function<SomeObject,U> mapper
和一个Consumer<U> consumer>
就可以建立我的服务。
我该如何处理?扩展ServiceBuilder
不起作用,因为我想重用的所有现有方法都返回ServiceBuilder
,而不是某些扩展ServiceBuilder
的类...
是否存在一些已知的模式?