http://d.hatena.ne.jp/higayasuo/20070417#1176813784の続き。 前回のエントリーでDIContainerが提供する機能で重要なのは AOP スコープ管理 で、IoCがDIContainerの敷居を高くしていると書きました。それでは、どうしたらよいのでしょうか。 必要なオブジェクトは、自分から取りにいけばよいのです。たとえば、AOPとスコープ管理を低要するFactoryクラスがあるとします。 public class Factory { public static T getInstance(Class<? extends T> type) { ... } }使うときには、次のように呼び出します。 Service service = Factory.getInstance(Serivice.class);このFactoryクラスを使ったときのC
http://d.hatena.ne.jp/higayasuo/20070416#1176719022の続き。 それでは、DIContainerの機能で本当に必要な2つの機能って何でしょうか。一つは、インスタンスのスコープ管理です。スコープとは、singletonだとかprototypeのようにインスタンスが存在する範囲のことです。たとえば、singletonの場合は、いつ取得しても同じインスタンスが返ってきて、prototypeの場合は、取得するたびに新しいインスタンスが返ってきます。 このスコープ管理は、単純にオブジェクトをnewしているだけでは達成できません。以前のコードを見てみましょう。 Service service = new Service();これは、ある意味prototypeですが、これをsingletonにしたい場合、次のようなコードにする必要があります。 Servic
http://www.commonsmedia.jp/cm/JavaAndSolarisCampaign blogでNetBeansやJavaEEについて書いて、トラックバックしたら先着100名にAmazonギフト券3000円分をプレゼントするそうです。id:nowokayさんのためのような企画です。 id:taediumさんもid:da-yoshiさんもぜひどうぞ。ただし、Seasar固有のことはできれば避けてねということです。 DIって本当に必要?たまにそう思うときがあります。DIによって開発は本当に楽になったのか。 DIのメリットでよく語られることとして、インターフェースと実装を分離し、機能の利用者側はインターフェースを通じて機能を利用することで、実装に直接依存しなくなり、後で実装を変更しても影響を受けなくなるということがあります。 実際後から、実装クラスを変更するということはめった
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く