Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
返回逻辑运算符的Java方法_Java_Design Patterns_Logical Operators - Fatal编程技术网

返回逻辑运算符的Java方法

返回逻辑运算符的Java方法,java,design-patterns,logical-operators,Java,Design Patterns,Logical Operators,先问问题,再问背景故事,如果事实上不可能的话,不要让这个问题看起来完全白痴 问题:有没有办法编写一个返回| |或&&或的方法 取决于调用方法的实现子类 我目前正在学习Java,并在大学修了一些课程 因此,在一门关于基于目标的设计模式和离散结构的课程中,我们要写一个程序来模拟一个逻辑命题,并检查它的重言式的质量。即,如果表达式对于所有可能的输入都为真 我做了一个简单的二进制树实现,程序运行正常,但本课程的设计部分要求我们使用诸如“复合”和“模板方法”等设计模式,这些都是非常流行的词,当然你们都听说

先问问题,再问背景故事,如果事实上不可能的话,不要让这个问题看起来完全白痴

问题:有没有办法编写一个返回| |或&&或<或>的方法 取决于调用方法的实现子类

我目前正在学习Java,并在大学修了一些课程

因此,在一门关于基于目标的设计模式和离散结构的课程中,我们要写一个程序来模拟一个逻辑命题,并检查它的重言式的质量。即,如果表达式对于所有可能的输入都为真

我做了一个简单的二进制树实现,程序运行正常,但本课程的设计部分要求我们使用诸如“复合”和“模板方法”等设计模式,这些都是非常流行的词,当然你们都听说过e'm

我的toString中有一个模板方法模式,因此

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,我忘了使用这个网站这么长时间了。。谢谢你的回答;对于我的问题来说,这似乎是一个很好的解决方案(尚未实现,请参见…)。