2011-09-14 12 views
2

ブール値、多項式、1-5,1- 10、1〜100、-2〜+ 2、小数値ですらあります。そこで、レスポンスタイプの階層を作成しました。実際にデータを格納するのと比較して階層データの構造を定義する

class Response { 
     String name 
} 

class BooleanResponse extends Response { 
     boolean score 
} 

class SimpleGradeResponse extends Response { 
     char score // A-F 
} 

class ComplexGradeResponse extends Response { 
     char score // A-F 
     char modifier // +, -, blank 
} 

class IntegerResponse extends Response { 
     int min, max, score 
} 

class DecimalResponse extends Response { 
     double min, max, score 
} 

メタデータとして考えています。調査回答タイプについて説明します。 1から10までのIntegerResponse、0から100までのIntegerResponse、DecimalResponseなどの質問3を持つことができます。

私は不確かなところは、ユーザーからの実際の応答をどこに格納するかです。上記のスコアフィールドで行ったように、スコアをメタデータと混同していますか?すべてのレンジ・タイプのレスポンスが最小値と最大値を持っているので、それは扱いにくいようです。

私が本当に望んでいるのは、範囲応答パラメータをカレーして新しいタイプを作成し、そのタイプを実際の応答のテーブルに反映できることです。したがって、1〜10の範囲を取る質問は、IntegerResponseの行で、min = 1およびmax = 10となります。しかし、ActualResponseテーブル(私はこれを理解したら、命名規則を改善する必要があります)はどのようにスコアを保持し、minとmaxを設定してカリングしたIntegerResponseを参照しますか?

この問題全体にアプローチするより良い方法があれば、私はそれを聞いて欲しいと思います。

おかげで、 リー

+0

あなたの問題のような私に聞こえる音は、グラスやグルーヴ関連ではありませんが、より多くのドメインモデリングとオブジェクト指向設計の領域です... –

答えて

0
  1. minmaxむしろQuestionオブジェクト内、またはさらにQuestionTypeに格納されるべきである - システムが実行時にどうあるべきか柔軟に応じ。
  2. Responseの種類には任意の制限がありますか?データ構造はそれに大きく依存します。異なるResponseタイプをハードコードするか、実行時にそれらをサポートすることができます。最初のアプローチは、1桁の単純さです。
+0

ありがとう、ビクター。私はあなたの投稿を理解しようとしていますが、私はそれを得るのか分かりません。質問と回答の関係は何ですか?特定の回答が特定の質問タイプのものであることをどのように強制しますか?あなたのアイテム2に関しては、レスポンスの種類をハードコードするのは大丈夫だと思いますが、私は物事を単純化する方法をあまり理解していません。メンバ変数min/maxではなく、min/maxで一定の問題ではありませんか?あるいは、私の例よりも洗練された何かを指していますか?私はこのスプーンで私を養子にしなければならないと言って申し訳ありません。お返事ありがとうございます。 – greymatter

+0

おそらく私は非常に異なる調査構造を念頭に置いています。あなたが考えている質問のサンプルをお願いしますか? –

関連する問題