Gia*_*ear 0 java visitor-pattern
我试图在具有对象具有不同返回类型(int和void)的方法的对象结构中实现Java的Visitor模式(家庭运动,对不起)。
ConcreteVisitor(即CostAss)返回int,第二个ConcreteVisitor(即drawCosts)返回void(即成本的打印)。
我有问题要了解如何实施此问题。我不允许在Employee接口中创建两个accept方法(一个int一个void)
从Java的角度来看,这些方法是相同的,因为返回类型不是方法签名的一部分。
该图不适用于Java。但是,可以使用泛型来解决它。
interface Employee<T> {
Optional<T> accept(Visitor visitor);
}
class Assistant implements Employee<Integer> {
@Override
public Optional<Integer> accept(Visitor visitor) {
return Optional.of(100);
}
}
class Manager implements Employee<Void> {
@Override
public Optional<Void> accept(Visitor visitor) {
return Optional.empty();
}
}
Run Code Online (Sandbox Code Playgroud)
我不是这种想法的一个巨大的支持者,我只是想分享的方式可以做到。
| 归档时间: |
|
| 查看次数: |
52 次 |
| 最近记录: |