QA #43
【インタフェース仕様】Questionクラス アクセサメソッドについて
ステータス: | 終了 | 開始日: | 2015/05/05 |
---|---|---|---|
優先度: | 通常 | 期日: | |
担当者: | aoki yuji | 作業時間の記録: | 0.30時間 |
カテゴリ: | - | ||
優先順: |
説明
①応答値、引数の「*」は何を表していますか?
なんでもありですか?
②例えば、getId(foo)というメソッドがあって、fooには「question」か、「correct」か、「incorrect」が入るイメージですか?
→question、correct、incorrectには一意性がない認識なので、idが複数取得できてしまう可能性があります。
③使い道がイマイチピン時ていないので微妙な提案になるかもしれませんが、
以下の様な引数と応答値ではいけませんかね・・・
array[] getId(foo) →fooはquestion,correct,incorrectが入る。応答値はidが複数格納された配列。
void setId(id, foo) →つくらない(idはDB側でシリアルに振り出しているので、外部から設定できない様にする。)
String getQuestion(id) →引数はid固定。応答されるStringはquestion。
void setQuestion(id, question) →idとquestionを渡し、メソッドの中でwhere句にidを指定し、questionをUPDATEするSQLを叩く
String getCorrect(id) →引数はid固定。応答されるStringはcorrect。
void setCorrect(id, correct) →idとcorrectを渡し、メソッドの中でwhere句にidを指定し、correctをUPDATEするSQLを叩く
String getIncorrect(id) →引数はid固定。応答されるStringはincorrect。
void setIncorrect(id, incorrect)→idとincorrectを渡し、メソッドの中でwhere句にidを指定し、incorrectをUPDATEするSQLを叩く
履歴
#2 Miyazaki Masafumi が9年以上前に更新
- ステータス を 新規 から 解決 に変更
- 担当者 を MIYAZAKI Masafumi から aoki yuji に変更
すみません、情報不足により概念的な齟齬を生んでしまいました。各クラスの関係(概念)を先に記述します。
Questionクラスは1問分のデータを格納する入れ物で、そのインスタンス自身が識別子/問題文/解答群を所持します。
このインスタンスは、WhiskyExaminationDBクラス(DBへのアクセサクラス)により生成されます。
(※Questionクラスから直接的にデータベースを参照することはありません。)
アプリケーションは、WhiskyExaminationDBクラスを通してデータベースにアクセスします。
例えば、アプリケーションが 3つの問題を要求する場合は、
WhiskyExaminationDBクラスがQuestionクラスのインスタンス(入れ物)を3つ生成し、
それぞれに別々の問題データを格納してアプリケーション側へ応答することになります。
①応答値、引数の「*」は何を表していますか?
簡略化しすぎていましたので、アクセサの仕様を下記のように修正します。
名前 | 応答値 | 引数 | 説明 |
get*** | 各プロパティの値 | なし | 各プロパティのアクセサ(getter)。***はプロパティ名を表す。 |
set*** | なし | 各プロパティの値 | 各プロパティのアクセサ(setter)。***はプロパティ名を表す。 |
②例えば、getId(foo)というメソッドがあって、fooには「question」か、「correct」か、「incorrect」が入るイメージですか?
③使い道がイマイチピン時ていないので微妙な提案になるかもしれませんが、
上述の概念説明を回答に代えさせていただきます。