gpt4 book ai didi

Java 运行前未知的子类型

转载 作者:行者123 更新时间:2023-11-30 06:27:24 24 4
gpt4 key购买 nike

我正在实现一个数学字符串表达式解析器,能够对标量和分数执行基本计算(+、-、*、/)。例如:计算“1/3*(4/10-12/10)”返回“-4/15”

在不依赖现有数学表达式或分数类的情况下,我相信有效的数学表达式可能是:

  • 标量
  • 分数
  • 基本运算(2 个分数、2 个标量或各一个)
  • 将被解析以确定基本操作执行优先级的复合表达式

当传递一个字符串时,程序将决定是否可以将其分解为更小的表达式(复合表达式),或者如果是基本操作则对其进行计算。

换句话说,给定一个表达式,程序需要在运行时决定应使用什么类型的类。

理想的类/子类结构是什么?决定对象类型的代码应该驻留在哪里?在父类的构造函数中?在静态方法中?在抽象类中?

我目前正在使用 Java,但问题可能与语言无关。

最佳答案

这里似乎有一个层次结构。 Expression 似乎是您的基本引用,它可以由多个 ExpressionComponent 组成,作为一个 Scalar、一个 Fraction、一个 Operation 和一个 CompoundedExpression

如何解析这些内容由您自行决定,但是您的工厂(是的,您将使用工厂来生成此处任何内容的实例)将生成这些对象的具体实例以供使用。由于它们都是 ExpressionComponent 的基类型,因此您需要确保 Expression 的 API 允许您与多个 ExpressionComponent 交互以智能的方式。

关于Java 运行前未知的子类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46898678/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com