平成23年度 特別 午前 問15
ソフトウェア
MVCに関する問題
モデル層,ビュー層及びコントローラ層の三つの論理的な層でモデル化された Web システムの説明として,適切なものはどれか。
- ア業務処理はコントローラ層が行い,出力が必要な場合はビュー層に依頼する。
- イ業務処理はモデル層が行い,処理結果はビュー層に渡されて画面表示が行われる。
- ウ処理に必要なデータをモデル層が検索し,コントローラ層で業務処理が行われる。
- エモデル層はコントローラ層から受け取った処理結果をビュー層に引き渡す。
答えと解説を見る
✓ これが正解イ業務処理はモデル層が行い,処理結果はビュー層に渡されて画面表示が行われる。
解説
業務処理はモデル層が担い、結果をビュー層が表示します。
三つの層の役割を一語ずつに縮めておくと、記述の当てはめが速くなります。モデル層は業務処理、ビュー層は表示、コントローラ層は交通整理です。MVCと呼ばれるこの分け方で一往復の流れを書くと、まず利用者の要求がコントローラ層に届きます。コントローラ層はどの処理を呼ぶかを決めて渡す係で、自分では業務処理をしません。受け取ったモデル層が業務処理を行い、必要ならデータベースにも触れて結果を返します。その結果がビュー層へ渡り、画面が組み立てられて利用者のもとへ戻ります。正解の記述は、この後半の二つの段をそのまま述べたものです。判定の軸は、業務処理をどの層が担うのかという一点で足ります。四つの記述のうち三つは、その一点をずらして作られているからです。この分け方を採る理由も、そこにあります。画面の見せ方を作り替えたいときに業務処理へ手を入れずに済み、逆に業務の規則が変わったときに画面を組み直さずに済みます。もし業務処理をコントローラ層に書いてしまうと、画面ごとに同じ処理が散らばって、層を分けた意味が薄れます。
ほかの選択肢はなぜ違うのか
- ア業務処理はコントローラ層が行い,出力が必…:業務処理の担い手をコントローラ層としている点が違います。この層が受け持つのは要求の振り分けで、処理の中身そのものを書く場所ではありません。
- ウ処理に必要なデータをモデル層が検索し,コ…:前半でデータの検索をモデル層に置いている点は流れと合いますが、後半で処理の中身をコントローラ層に置いています。半分だけ合っているので最も紛らわしい記述です。
- エモデル層はコントローラ層から受け取った処…:結果を作るのはモデル層自身ですから、受け渡しの向きが逆になっています。コントローラ層から渡ってくるのは処理の依頼であって、出来上がった結果ではありません。
出典:平成23年度 特別 応用情報技術者試験 午前 問15
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)