我有我的变换器抽象类:
public abstract class Transformer<T, S> {
public abstract S transform(T object);
public abstract T revert(S object);
public List<S> transformArray(Collection<T> iterable) {
try {
List<S> transformed = new ArrayList<S>();
Iterator<T> iterator = iterable.iterator();
while (iterator.hasNext()) {
T element = iterator.next();
transformed.add(this.transform(element));
}
return transformed;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
public List<T> revertArray(Collection<S> iterable) {
try {
List<T> transformed = new ArrayList<>();
Iterator<S> iterator = iterable.iterator();
while (iterator.hasNext()) {
S element = iterator.next();
transformed.add(this.revert(element));
}
return transformed;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
}
我想拥有我的DTOTransformer,就像
public abstract class DTOTransformer<DTOREQ, OTHER, DTORES> {
Transformer<DTOREQ, OTHER> forwardTransformer;
Transformer<OTHER, DTORES> backwardTransformer;
// Not overriding, since isn't and hasn't a transformer
public OTHER transform(DTOREQ object) {
return forwardTransformer.transform(object);
}
// Not overriding, since isn't and hasn't a transformer
public DTORES revert(OTHER object) {
return backwardTransformer.transform(object);
}
}
问题是我实际上没有对reverseTransformer和forwardTransformer的transform()方法进行任何实现。我想要的是,当我从DTOTransformer创建一个子类时,例如ClientDTOTransformer然后我必须实现转换和恢复方法(这与Transformer&#39; s类提供的方法不同,因为我有一个& #34;三角形&#34;转换)。
我已经尝试过使用适配器模式,但我找不到实现它的方法。
你知道我怎么做吗?或者如果您知道更好的方法,我愿意接受建议。