2017-10-23 15 views
1

スカラー数と分数の基本計算(+、 - 、*、/)を実行できる数学的文字列式パーサを実装しています。 例:「1/3 *(4/10-12/10)」を評価すると「-4/15」が返されます実行時のJava未知の子タイプ

既存の数式表現や分数クラスに依存することなく、

  • フラクション
  • 基本動作(2画分、2つのスカラ、またはそれぞれのうちの1つ)
  • の実行の優先順位を決定するために解析される配合発現
  • スカラー基本操作

文字列が渡されると、プログラムは小さな式(複合式)に分解できるかどうかを判断し、基本的な操作であれば評価します。

つまり、式を指定すると、実行時にどのタイプのクラスを使用するかを決定する必要があります。

理想的なクラス/サブクラス構造は何ですか。オブジェクトタイプを決定するコードはどこにありますか?親クラスのコンストラクタでは?静的な方法で?抽象クラスでは?

私は現時点でJavaを使用していますが、問題は言語に依存しない可能性があります。

+0

あなたの問題は、問題のドメインを開発し、そのオブジェクトモデルを開発するのと同じくらい、Javaやプログラミングに関するものではないようです。これが当てはまるので、この質問は別のフォーラムで最も適切なものです。 – scottb

答えて

1

ここに階層があるようです。 Expressionは、ScalarFractionOperation、およびCompoundedExpressionである複数のExpressionComponentを構成することができる基本参照のようです。

どのように解析するかはあなたの裁量ですが、あなたの工場(はい、ここで何かのインスタンスを生成するために工場を使用します)は、これらのオブジェクトの具体的なインスタンスを使用して作成します。それらはすべてExpressionComponentにタイプされているので、ExpressionのAPIを使用すると、インテリジェントに複数のExpressionComponentと対話できます。

+0

これは非常に有用です、私は工場について知りませんでした、ありがとう – sousben

関連する問題