# 試訳
Model–view–controller is commonly used for developing software that divides an application into three interconnected parts. This is done to separate internal representations of information from the ways information is presented to and accepted from the user. The MVC design pattern decouples these major components allowing for efficient code reuse and parallel development.
モデル・ビュー・コントローラーはアプリケーションを相互接続された 3 つの部分に分けるソフトウェアの開発において,ユーザーとの間で情報を受け渡しする機構から,内部的な情報表現を分離する目的でよく用いられる。MVC(で)は効率的なコードの再利用や並行開発を視野に入れて主要なコンポーネントを分離する。
↑allow for,意味が「可能にする」と「考慮する」の二つあるらしくて,絶起さんが後者を持ってきたけど文脈的になんか前者っぽい……?
Traditionally used for desktop graphical user interfaces (GUIs), this architecture has become popular for designing web applications and even mobile, desktop and other clients. Popular programming languages like Java, C#, Ruby, PHP and others have popular MVC frameworks that are currently being used in web application development straight out of the box.
このデザインパターンはもともとはデスクトップの GUI に用いられていたが,ウェブアプリ,モバイルアプリ,デスクトップアプリなどのアプリケーション設計にも用いられるようになった。Java, C#, Ruby, PHP などのメジャーなプログラミング言語にはウェブアプリの開発に広く使用されている MVC のフレームワークが備わっており,すぐに使うことができる。
As with other software patterns, MVC expresses the "core of the solution" to a problem while allowing it to be adapted for each system. Particular MVC architectures can vary significantly from the traditional description here.
MVC は他のデザインパターンと同様に,問題に対する「本質的な解決策」を提示することで,どんなシステムに対しても適応できるようになっている。MVCの構造は,ものによってはこの記事における一般的な記述とは大きく異なることもある。
## Components
- The model is the central component of the pattern. It expresses the application's behavior in terms of the problem domain, independent of the user interface. It directly manages the data, logic and rules of the application.
- A view can be any output representation of information, such as a chart or a diagram. Multiple views of the same information are possible, such as a bar chart for management and a tabular view for accountants.
- The third part or section, the controller, accepts input and converts it to commands for the model or view.
## コンポーネント
- model はこのパターンの中心となるコンポーネントで,UI とは独立に,問題領域におけるアプリケーションの挙動を表している。またアプリケーションのデータや動きかたを直接管理する。
- view はグラフや図などなんらかの出力を表現するコンポーネントである。たとえば経営者向けには棒グラフを,会計士向けには表を用意するなど,同じ情報に対して複数の view があってもよい。
- controller は入力を受け取り,model と view 用のコマンド形式に変換するコンポーネントである。
## Interaction
In addition to dividing the application into three kinds of components, the model–view–controller design defines the interactions between them.
- The model is responsible for managing the data of the application. It receives user input from the controller.
- The view means presentation of the model in a particular format.
- The controller responds to the user input and performs interactions on the data model objects. The controller receives the input, optionally validates it and then passes the input to the model.
## 相互作用
MVC はアプリケーションを 3 種類のコンポーネントに分割するだけでなく,それらの間の関係性も定めている。
- model はアプリケーションのデータ管理を行う。また,controller からユーザーの入力を受け取る。
- view はなんらかのフォーマットで model を表示する。
- controller はユーザーの入力に応じて,データモデルのオブジェクトに対してインタラクティブな処理を行う。入力を受け取り,入力を(必要ならば検証してから)model に渡す。