返回逻辑运算符的Java方法
先问问题,再问背景故事,如果事实上不可能的话,不要让这个问题看起来完全白痴 问题:有没有办法编写一个返回| |或&&或<或>的方法 取决于调用方法的实现子类 我目前正在学习Java,并在大学修了一些课程 因此,在一门关于基于目标的设计模式和离散结构的课程中,我们要写一个程序来模拟一个逻辑命题,并检查它的重言式的质量。即,如果表达式对于所有可能的输入都为真 我做了一个简单的二进制树实现,程序运行正常,但本课程的设计部分要求我们使用诸如“复合”和“模板方法”等设计模式,这些都是非常流行的词,当然你们都听说过e'm 我的toString中有一个模板方法模式,因此返回逻辑运算符的Java方法,java,design-patterns,logical-operators,Java,Design Patterns,Logical Operators,先问问题,再问背景故事,如果事实上不可能的话,不要让这个问题看起来完全白痴 问题:有没有办法编写一个返回| |或&&或的方法 取决于调用方法的实现子类 我目前正在学习Java,并在大学修了一些课程 因此,在一门关于基于目标的设计模式和离散结构的课程中,我们要写一个程序来模拟一个逻辑命题,并检查它的重言式的质量。即,如果表达式对于所有可能的输入都为真 我做了一个简单的二进制树实现,程序运行正常,但本课程的设计部分要求我们使用诸如“复合”和“模板方法”等设计模式,这些都是非常流行的词,当然你们都听说
abstract Class BinaryConnector extends Expression{
protected Expression a,b
public String toString(){return a + getConnective() + b; }
public abstract String getConnective();
}
例如,威奇
Class Or extends BinaryConnective{
//omissions
public String getConnective(){return "||";}
对于实际的比较,我也希望这样做
我想有很多方法可以对这样的解决方案进行juryrigging,比如在我的抽象类中使用switch语句。但请提供优雅的解决方案。。我希望有类似“只解析getConnective()”或类似的东西:)
或者责骂我让你读了这么多..你可能想要的是在基类中增加一个抽象方法,比如
public abstract boolean evaluate();
在或子类中:
@Override
public boolean evaluate() {
return a.evaluate() || b.evaluate();
}
@Override
public boolean evaluate() {
return a.evaluate() && b.evaluate();
}
在和子类中:
@Override
public boolean evaluate() {
return a.evaluate() || b.evaluate();
}
@Override
public boolean evaluate() {
return a.evaluate() && b.evaluate();
}
不,没有什么比基于开关或枚举的简单方法更干净的了。对不起,JB,我忘了使用这个网站这么长时间了。。谢谢你的回答;对于我的问题来说,这似乎是一个很好的解决方案(尚未实现,请参见…)。