ascreed.jp
DIとか依存性の注入とか言われても…… | 株式会社アスクリード
どうも、水谷です。 今日は、DIについて、書いてみようと思います。 自分が理解したことを、書いているので、間違いなどあれば、ご指摘いただけると、すごく嬉しいです。 DIとは Dependency Injectionの略。 日本語訳は、依存性の注入……なんじゃそりゃ?? つまりどういうこと? クラス間での依存を、外出しするってことらしいです。 そうすることで、メンテナンスとかテストがとっても楽になるそうです。 DI的ではないコードを書く ・例えば、Facebookに「次にお前は????と言う」という内容を投稿するだけのクラス class YouWillSay { public static final String WHO_OTHERS = "他人"; public static final String WHO_FRIENDS = "友達"; public static final String WHO_PARENT = "親"; private FacebookClient fbClient = new FacebookClient(); // (1) public void post() { // Facebookに投稿してくれる fbClient.post(getMessage(WHO_FRIENDS)); } private getMessage(String who) { String tmpl = "次にお前は「%d」と、言う!" String message = String.format(tmpl, "・・・・"); switch (who) { case WHO_OTHERS: message = String.format(tmpl, "やっつけてやるぜ!!"); break; case WHO_FRIENDS: message = String.format(tmpl, "ハッピーウレピーよろぴくねー!!"); break; case WHO_PARENT: message = String.format(tmpl, "宿題をしなさい!!"); break; } } } (1)で、FacebookClientクラスのインスタンス化しています。