アプリケーションでの役割に基づいてコードを分離するアプローチです。アプリケーションフローでは、まずコントローラが呼び出されます。コントローラは、モデルを使用してデータを取得するメソッドを実行します。それから、コントローラはどのビューを呼び出すか決定します。ビューには訪問者が閲覧する出力が含まれています。基づいて、決定します。ここからアプリケーションが動き出します。どのデータが処理されるか、どのビューをユーザに見せるか、を決めます。コントローラは、自身では何も行いません。モデルとクラスを呼び出します。