Java 方法即 returns 逻辑运算符
Java method that returns logical operators
先提问,再介绍背景,如果实际上不可能的话,不要让问题看起来完全愚蠢..
问题:有什么方法可以编写 returns || 的方法吗?或 && 或 < 或 >
取决于哪个实现的 subclass 正在调用方法
我目前正在学习 Java 并在大学学习了一些课程。
因此,在一门涉及基于 objective 的设计模式和离散结构的课程中,我们将编写一个程序来模拟逻辑命题并检查它是否符合同义反复。即如果表达式对于所有可能的输入都为真。
我做了一个简单的二叉树实现,程序可以运行,但是课程的设计部分要求我们使用"Composite"和"Template method"这样的设计模式,这些都是很时髦的词,当然你们都听说过 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 "||";}
我也想对实际比较做同样的事情。
我想有很多方法可以陪审团制定这样的解决方案,例如我的摘要中的 switch 语句 class。但请只是优雅的解决方案..我希望得到类似“只需解析 getConnective()”或类似的东西:)
或者骂我让你看那么多..
您可能想要的是在您的基础 class 中添加一个额外的抽象方法,例如
public abstract boolean evaluate();
并在 Or
子class:
@Override
public boolean evaluate() {
return a.evaluate() || b.evaluate();
}
并在 And
子class:
@Override
public boolean evaluate() {
return a.evaluate() && b.evaluate();
}
先提问,再介绍背景,如果实际上不可能的话,不要让问题看起来完全愚蠢..
问题:有什么方法可以编写 returns || 的方法吗?或 && 或 < 或 > 取决于哪个实现的 subclass 正在调用方法
我目前正在学习 Java 并在大学学习了一些课程。
因此,在一门涉及基于 objective 的设计模式和离散结构的课程中,我们将编写一个程序来模拟逻辑命题并检查它是否符合同义反复。即如果表达式对于所有可能的输入都为真。
我做了一个简单的二叉树实现,程序可以运行,但是课程的设计部分要求我们使用"Composite"和"Template method"这样的设计模式,这些都是很时髦的词,当然你们都听说过 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 "||";}
我也想对实际比较做同样的事情。
我想有很多方法可以陪审团制定这样的解决方案,例如我的摘要中的 switch 语句 class。但请只是优雅的解决方案..我希望得到类似“只需解析 getConnective()”或类似的东西:)
或者骂我让你看那么多..
您可能想要的是在您的基础 class 中添加一个额外的抽象方法,例如
public abstract boolean evaluate();
并在 Or
子class:
@Override
public boolean evaluate() {
return a.evaluate() || b.evaluate();
}
并在 And
子class:
@Override
public boolean evaluate() {
return a.evaluate() && b.evaluate();
}