今回は、よく使われるデザインパターンについて書いていきます。
結論から言うと、よく使われるデザインパターンは、「MVC」というデザインパターンです。
おそらく、ほとんどのシステム開発で採用されているのではないでしょうか。
私が携わったシステム開発は、ほとんどがMVCで開発を行っていました。
デザインパターン
デザインパターンとは、GoF の著書『オブジェクト指向における再利用のためのデザインパターン』で記した23種類のパターンをいいます。
オブジェクト指向の良いところは、再利用可能であるということです。
再利用できるため、システム開発の生産性は上がるはずなのです。
別の機会に書こうと思いますが、実際は、生産性が上がらないことも良くある話です。
MVCは以下の頭文字です。
- Model(モデル)
- View(ビュー)
- Controller(コントローラ)
MVCは、良く使われるフレームワークで使用されており、MVCに分けて設計・製造することで、綺麗なソースコードとなります。
Model(モデル)
Modelは、データを扱うクラスです。
データベースを使っている場合は、テーブルごとにModelクラスを作成することが多いです。
フレームワークによって違うのですが、テーブルごとにModelクラスを作成することで、テーブルの外部キーを使用して、テーブルの連結を行うことができ便利です。
SQLを記載しデータを取得するのも、このModelクラスとなります。
View
Viewは、画面表示のクラスです。
Webシステムでは、ViewにHTMLなどが書かれます。
また、Webシステムでは、ViewはControllerから受け取ったデータをHTMLに取り込み、ブラウザへ渡します。
CSSやJavascriptは、Viewではなく別に管理されることが多いようです。
私の経験では、Viewは、動的な画面のHTMLに値を設定する処理を書いて、静的な画面のHTMLやCSS、Javascriptは、別のディレクトリで管理していました。
Controller
Controllerは、制御をするクラスです。
Webシステムの場合は、まずControllerクラスが呼び出されます。
ControllerからModelを呼び出し、画面表示に必要なデータをViewに渡す処理を行います。
フレームワークにもよりますが、Controllerから返すのは画面表示に必要なデータのみで、実際にViewでデータを埋め込むのは、フレームワークが処理することが多いです。
MVCパターンでビジネスロジックをどこに書くか
MVCのフレームワークを使用する時に良く起きる問題が、ビジネスロジックをどこに書くかです。
結論を言うと、私にも分かりません。
ビジネスロジックとは、実際の処理のことです。
例えば、ボタンを押して、データベースから値を取ってきて、加工して表示するとします。
- ボタンを押して、Controllerへ処理がきます。
- ControllerでModelを呼び出し、データベースからデータを取得します。
- データを加工します。
- Controllerがデータを返します。
上の処理だと、3の工程をControllerで行うかModelで行うかという問題です。
私の経験から言うと、半々くらいです。
ただし、ビジネスロジックが入るとソースコードが複雑になり、場合によってはソースコードが汚くなることがあります。
ビジネスロジックを書くクラスを作るプロジェクトもあるくらいです。
この問題は、プロジェクトに合わせて設計・製造するしかないと思います。
まとめ
フレームワークでは、良くMVCのデザインパターンが使われています。
そのため、これからプログラマーを目指すのでしたら、MVCを意識して勉強することで、実践で困ることも少ないのではないでしょうか。
では、今日はこの辺で。