タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

JavaとjavaとDIに関するteracy_junkのブックマーク (6)

  • DIコンテナのインジェクション方法の使い分けについて - 日々常々

    DIコンテナを使う時にどのインジェクションを使うかって話です。 たぶん誰かがどこかで同じようなことを書いているだろうけれど、気にせず書くよ。 「他の誰かが書いている」なんてのを書かない理由にしてると何も書けなくなるし。 コンテナ DIコンテナのこと。 コンテナ管理 インスタンスのライフサイクルをコンテナが管理していること。雑に言えば、使う側で new しないってこと。 インジェクション Dependency Injectionのこと。 Short Answer コンストラクタインジェクションを使いましょう。使い分けなくていいです。 3種類のインジェクション インジェクションには3種類ありますね。他あっても知らない。 フィールドインジェクション セッターインジェクション コンストラクタインジェクション フィールドインジェクション 一番よく見るかな。 class Hoge { @Inject

    DIコンテナのインジェクション方法の使い分けについて - 日々常々
    teracy_junk
    teracy_junk 2017/04/17
    普段AndroidでDIするとき、Fragmentだけフィールドインジェクション使ってて、それ以外はコンストラクタ略を使ってるんだけど、なんとなく気持ち悪さ感じてる
  • PPAPで学ぶDaggerによるDI - きしだのHatena

    Daggerってありますよね。コンパイル時に依存性を解決するのでパフォーマンス的に有利なDIコンテナです。 https://google.github.io/dagger/ 依存関係の不備がコンパイル時にエラーになって発見できるのも、実行時にエラーが出たときの修正の難易度が高いAndroidアプリにはありがたいということで、Androidでよく使われてるようです。 基的なオブジェクトの定義 I have a pen. public class Pen { @Override public String toString() { return "ペン"; } } I have an apple. public class Apple { @Override public String toString() { return "アッポー"; } } Ohh!!! Apple Pen!!! p

    PPAPで学ぶDaggerによるDI - きしだのHatena
  • 「なぜDI(依存性注入)が必要なのか?」についてGoogleが解説しているページを翻訳した  - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    「なぜDI(依存性注入)が必要なのか?」についてGoogleが解説しているページを翻訳した  - Qiita
  • 作って理解するDIコンテナ - きしだのHatena

    DIコンテナ使ってるけど、アノテーションってなんなの!って聞かれて、作ってみたらわかるよと答えてみたので、自分でも作ってみました。 よくわかった。 「DIコンテナ使うと何がいいの?」ということも、作ってみるとわかります。あと「DIって何がいいの?」に関しては、「DIはちょっとコードを書くのが楽になるだけで、それだけあっても仕方ない、大事なのはコンテナ」と答えるようにしてますが、コード比率からもそれがよくわかります。 続編としてWebフレームワークも作っているので参考まで。 作って理解するWebフレームワーク - きしだのHatena まずはコンテナを作る とりあえず1ソースの状態で。 こんな感じで、管理する型を登録できるようにします。 static Map<String, Class> types = new HashMap<>(); static void register(String

    作って理解するDIコンテナ - きしだのHatena
  • WeldとJava SEとGradleとIDEAと - 日々常々

    Weldを使ってみようと思いました。普段DIはSpring一槍なのですが、それもどうかと思ったので。 opengl-8080さんやKazuhiraさんのようないつもの方々が既にやられていることだし、すぐできるだろうと思ってました。 qiita.com d.hatena.ne.jp やるまでは。甘かったです。すぐできなかった。でも、あーだこーだとやってたら一応解決したので書いておきます。 結論からいうと、*.classがあるディレクトリにbeans.xmlさんがいる必要があります。Gradleとかでclassesとresourcesとかディレクトリが分かれてると、resourcesにbeans.xmlさんが行っちゃうので、動かない。 気づいてみればよくある話なんだけど、だいたいそんなもんだよね(´・ω・`) やったこと とりあえずドキュメントの通りにやってみる なんか動かない CDIわかっ

    WeldとJava SEとGradleとIDEAと - 日々常々
  • Dagger

    Deprecated – Please upgrade to Dagger 2 Square's Dagger 1.x is deprecated in favor of Google's Dagger 2. Please see the migration guide for help with the upgrade. Introduction The best classes in any application are the ones that do stuff: the BarcodeDecoder, the KoopaPhysicsEngine, and the AudioStreamer. These classes have dependencies; perhaps a BarcodeCameraFinder, DefaultPhysicsEngine, and an

  • 1