OOP の練習のために、私は趣味のプロジェクト、txt ファイルからテーブルを読み取り、テーブルのエントリについて質問するクイズ プログラムに取り組んでいます。アイデアは、これにより、私たちの部門のコースに与えられた資料の学習を促進することです.
これまでのところ、I/O ビットを作成し、非常に控えめな GUI と、データテーブル内のさまざまな種類のエンティティを表すクラスをまとめました。プログラムの核となる部分をどのように進めるかはわかりませんが、質問の生成と検証を意味します。
AbstractQuestion
私の最初のアイデアは、質問とは何か、どのフィールド (文字列表現、回答、および難易度) を持つかをほぼ定義するクラスを持つことでした。次に、さまざまな種類の質問用のクラスを作成できると考えました。たとえば、単純な値の問い合わせ (エンティティの名前を指定して特定のプロパティを尋ねるなど) 用のクラスと、より複雑な質問用のクラス (たとえば、エンティティなど)。
ただし、これが最善の方法であるかどうかはわかりません。理由はうまく言い表せませんが、これは最善の方法ではないと感じています。Factoryクラスで作業することは理にかなっていますか? 基本的に私はする必要があります:
- データテーブルからランダムに選択された 1 つ以上のエンティティに基づいて質問を生成する手段を提供する
- ユーザーからの入力に基づいて、さまざまなタイプの問題をランタイムで作成する必要があります (希望する難易度)。
Quiz
質問は検証する必要があり、メインクラスからユーザーに通知する必要があります(そのため、質問にアクセスできる必要があります)。
簡単なことから始めて、1 種類の質問だけを実装し、それを機能させ、時間内に新しい機能を追加することもできますが、OOP の理解を深めるためには良い習慣だと思います。人々がそれをテストするために、私は最終的に別のものに取り組むことになります。自分のプロジェクトをよりよく概念化できるようになりたいと思っています。これは、それを改善する良い機会になると思います。
PS: 明らかではない場合、私は学歴によるプログラマーではありません :)