ピースペース

Unity.MVC3を試してみた

leave a comment »

関心の分離に再度コミットするぞ!シリーズ第1弾
DIって何それ?おいしい?が、素直に想像も理解もできなくて挫折した。
に再度、挑戦してみた。

いまあるコントローラのコードがこんな感じで

public class CheckupController : BaseController
    {
        ICheckupRepository rpsCheckup;

        public CheckupController()
            : this(new CheckupRepository())
        {
        }

        public CheckupController(ICheckupRepository repository)
        {
            rpsCheckup = repository;
        }

どうも、コンストラクタでリポジトリをNewしてるあたりがグレーらしい。
ので、目標はこのコンストラクタを削除することになる。

しばやんによると、Unityを使う場合、いろいろ書く必要があるらしい。
http://d.hatena.ne.jp/shiba-yan/20111127/1322376325

とりあえず、インストールしてみるべ、
Library Package Referenceを開いて検索すると
Unity.MVC3てのがある…
http://unitymvc3.codeplex.com/

なんか、ちょー簡単そーなんですけど!
早速インストールしてみると、
ProjectのルートにBootstrapper.csてのが追加になっている。
を開いて、コメントに習って次の行を追加して

container.RegisterType<ICheckupRepository, CheckupRepository>();

コントローラの例のコンストラクタをコメントアウトして実行してみる。
ちゃんと動いた。よい感じ。

やった作業をまとめると、
1. Unityのコンテナにリポジトリクラスとインタフェースを登録する。
2. 1.の代わりとして、リポジトリをインスタンス化していたコンストラクタを削除する。

なるほど、そうゆうことだったのか→DI
意外と簡単じゃん! (リゾルバコードの説明が入ると理解できなくなる→DI)
って、それでもオラにはまだこの複雑さを追加するメリットがこれでもまだ見えてない。
自分が使用するオブジェクトの名前を自分の中に保持するのはダメよ! ってことらしいが…
まあ、とにかくそれが「関心の分離」の方向てことで。信じよう

Written by nasu38yen

2012年6月11日 @ 4:51 PM

カテゴリー: .NET, プログラム

Tagged with

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。