SlideShare a Scribd company logo
1 of 34
Download to read offline
MVCについて
  藤川 康之




          1
MVCの基本




         2
MVCモデルで設計された「なにかのシステム」があるとします。
   処理の内容は、申し込みをした情報を処理するだけです。



ビュー:画面を表示します。   コントローラ:処理を制御します。   モデル:データの管理と処理をします。



      V                C                   M




                                                        3
処理の順序




   申し込みます
                            待機中
                                  待機中
            必要な項目を書いて
             ボタン押してね


        V               C               M




                                            4
処理の順序




            処理発生

             !                        待機中
                       処理が発生した!




        V          C              M




                                            5
処理の順序




            よろしく。       おまかせ!   暇だなぁ



            入力
        V           C                  M
            内容




                                           6
処理の順序




                     これ、よろしく!
             結果を
                                             わかりました。
            待ってます。


                                    入力
        V                       C        M
                                    内容




                                                       7
処理の順序




             結果を      結果を
                                           登録!
            待ってます。   待ってます。


                                      入力
        V                     C   M
                                      内容




                                                 8
処理の順序




                     了解です。
             結果を     ありがとう!
                                           処理結果です。
            待ってます。


                                  処理
        V                     C        M
                                  結果




                                                     9
処理の順序




            わかりました。       処理結果です。   待機中



                 処理
        V             C                   M
                 結果




                                              10
処理の順序




処理結果を表示する
                待機中       待機中
 !



        V   C         M




                                11
モデル、ビュー、コントローラは、お互いに協力し合いながら処理を行っています。
誰か1人でも欠けたら、このシステムは動きません。



ビュー:画面を表示します。   コントローラ:処理を制御します。   モデル:データの管理と処理をします。



      V                C                   M




                                                        12
重要
                3人が3人とも自分の仕事だけに集中し、
                他の人の仕事にはいっさい関与していない



ビュー:画面を表示します。     コントローラ:処理を制御します。   モデル:データの管理と処理をします。



      V                  C                   M




                                                          13
ビュー:ユーザーからの入力受付を行います。
    コントローラに処理を依頼しますが、
    具体的な処理の内容は知りません。



            V




                        14
コントローラ:定義の中に「データを処理せよ」という
       内容があったらモデルに依頼しますが、
       モデルがどのようにデータを
       処理しているのかは知りません。


               C




                            15
モデル:モデルは、コントローラが
    どのような処理をしたのかは知りません。
    コントローラから依頼されただけです。
    また、ビューが何をしたか、知るよしもありません。


               M




                               16
これがMVCモデルです。




               17
実際にプログラムを見てみよう!




                  18
システムの改修




          19
ある日、このシステムを作った開発者は、
                   良くしたいと考えました。



ビュー:画面を表示します。     コントローラ:処理を制御します。   モデル:データの管理と処理をします。



      V                  C                   M




                                                          20
開発者は、モデル、ビュー、コントローラを別々に呼び出し
           それぞれの改修ポイントをその人だけに伝えました。



ビュー:画面を表示します。   コントローラ:処理を制御します。   モデル:データの管理と処理をします。



      V                C                   M




                                                        21
インタフェースのデザイン
                   承知しました。
  を変更しよう




               V             M   C




                                     22
処理を追加しよう。       承知しました。




V               M             C




                                  23
処理が増えたから
                            承知しました。
        コントローラも変更しよう。
M

    V                   C

M




                                      24
処理の順序




                            待機中

   申し込みます
            必要な項目を書いて
             ボタン押してね              M

        V               C   待機中
              新しい自分


                                  M




                                      25
処理の順序




                                       待機中
            処理発生

             !
                        処理が発生した!
                                   M

        V           C                  待機中

            新しい自分


                                   M




                                             26
処理の順序




                                    待機中




            よろしく。       おまかせ!
                                M

            入力
        V           C               待機中
            内容

                                M




                                          27
処理の順序




                                            暇だなぁ


                        これ、よろしく!
             結果を
            待ってます。                                 M

                                       入力
        V                          C                   わかりました。
                                       内容
                     新しい処理へ渡そう

                                                   M




                                                                 28
処理の順序




                                       暇だなぁ


             結果を      結果を
            待ってます。   待ってます。       M

        V                     C            登録!



                                      入力
                                  M
                                      内容


                                      新しい処理でやる!




                                                  29
処理の順序




                                            暇だなぁ
                     了解です。
             結果を     ありがとう!
            待ってます。                     M

        V                     C            処理結果です。



                                  処理
                                       M
                                  結果




                                                     30
処理の順序




                                    待機中


            わかりました。       処理結果です。

                                          M
                 処理
        V             C
                 結果                 待機中



                                          M




                                              31
処理の順序




                      待機中
処理結果を表示する
                待機中
 !
                            M
        V   C
                      待機中



                            M




                                32
実際にプログラムを見てみよう!




                  33
参考サイト
http://hijiriworld.com/web/mvc-concept/




                                          34

More Related Content

More from Yasuyuki Fujikawa

アジャイルプラクティス_インセプションデッキ
アジャイルプラクティス_インセプションデッキアジャイルプラクティス_インセプションデッキ
アジャイルプラクティス_インセプションデッキYasuyuki Fujikawa
 
アジャイルプラクティス_プラニングポーカー
アジャイルプラクティス_プラニングポーカーアジャイルプラクティス_プラニングポーカー
アジャイルプラクティス_プラニングポーカーYasuyuki Fujikawa
 
アジャイルプラクティス_ユーザーストーリー
アジャイルプラクティス_ユーザーストーリーアジャイルプラクティス_ユーザーストーリー
アジャイルプラクティス_ユーザーストーリーYasuyuki Fujikawa
 
CodeGrid2周年記念パーティ_ライトニングトーク_アジャイル開発
CodeGrid2周年記念パーティ_ライトニングトーク_アジャイル開発CodeGrid2周年記念パーティ_ライトニングトーク_アジャイル開発
CodeGrid2周年記念パーティ_ライトニングトーク_アジャイル開発Yasuyuki Fujikawa
 
アイデアのつくり方を読んで(Lt用)
アイデアのつくり方を読んで(Lt用)アイデアのつくり方を読んで(Lt用)
アイデアのつくり方を読んで(Lt用)Yasuyuki Fujikawa
 
アジャイルカンファTokyoの共有
アジャイルカンファTokyoの共有アジャイルカンファTokyoの共有
アジャイルカンファTokyoの共有Yasuyuki Fujikawa
 

More from Yasuyuki Fujikawa (6)

アジャイルプラクティス_インセプションデッキ
アジャイルプラクティス_インセプションデッキアジャイルプラクティス_インセプションデッキ
アジャイルプラクティス_インセプションデッキ
 
アジャイルプラクティス_プラニングポーカー
アジャイルプラクティス_プラニングポーカーアジャイルプラクティス_プラニングポーカー
アジャイルプラクティス_プラニングポーカー
 
アジャイルプラクティス_ユーザーストーリー
アジャイルプラクティス_ユーザーストーリーアジャイルプラクティス_ユーザーストーリー
アジャイルプラクティス_ユーザーストーリー
 
CodeGrid2周年記念パーティ_ライトニングトーク_アジャイル開発
CodeGrid2周年記念パーティ_ライトニングトーク_アジャイル開発CodeGrid2周年記念パーティ_ライトニングトーク_アジャイル開発
CodeGrid2周年記念パーティ_ライトニングトーク_アジャイル開発
 
アイデアのつくり方を読んで(Lt用)
アイデアのつくり方を読んで(Lt用)アイデアのつくり方を読んで(Lt用)
アイデアのつくり方を読んで(Lt用)
 
アジャイルカンファTokyoの共有
アジャイルカンファTokyoの共有アジャイルカンファTokyoの共有
アジャイルカンファTokyoの共有
 

Recently uploaded

IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdffurutsuka
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 

Recently uploaded (9)

IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 

Mvcについて