我的问题如下:
我们有一个内部可使用的算法
具有“ String getContent()”方法的表达式对象
使用“表达式操作(表达式e)”方法对表达式进行操纵的操纵器对象
这将成为Java中的框架。
为了解决一个实际的问题,需要给出一个具体的实现
Expression和Manipulator都将完成,其余的将由Algorithm类完成。
假设我们需要一个ProblemExpression和ProblemManipulator
针对特定问题。
ProblemExpression可能包含许多新字段,
可以由ProblemManipulator使用。
现在,我只能想到两种编写干净代码的方法:
让ProblemManipulator.manipulate假设其参数为ProblemExpressions
使用instanceOf
但是我感觉这不是我应该怎么做。
还有其他建议吗?
致以诚挚的谢意,
Xaero。
最佳答案
听起来您应该使用泛型。喜欢
interface Manipulator<E extends Expression> {
public void manipulate(E expression);
}
class ProblemManipulator implements Manipulator<ProblemExpression> {
public void manipulate(ProblemExpression expression) {
// expression is a ProblemExpression
}
}