タグ

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

タグの絞り込みを解除

DIContainerに関するrokujyouhitomaのブックマーク (5)

  • JavaScriptで動くDIコンテナを作ってみた。 - うなの日記

    JavaScriptで動くDIコンテナを作ってみました。(→計画) 一般的なDIコンテナが持つ機能をサポート インスタンス管理(Singleton or Prototype)、プロパティインジェクション、初期化メソッドの実行など コンポーネント定義はJavaScript APIで。 設定ファイルは利用しません。 設定APIGoogle-Guice風です。 アノテーション(もどき)でのコンポーネント定義も可能。 AOP機能も提供します。 ダウンロード container.js(コンテナ体) - ver 0.1.0 テストケースの実行結果はこちら。 Yahoo Test Utilityを使っています。 動作はIE6とFireFox2で確認しています。 使い方 基的な使い方 コンテナを作成します。 引数でコンポーネントを定義する関数を指定します。 関数では、引数で渡されるBinderを利用

    JavaScriptで動くDIコンテナを作ってみた。 - うなの日記
  • DIコンテナの設定ファイル書くの?書かないの?

    DIコンテナの設定情報,つまり「オブジェクトの依存関係」や「オブジェクトの設定内容」について,規約重視で暗黙のものとするか,ファイルに記述することで形式のものとするかは,個々人によって主張が異なるようである。何が何でも設定ファイルを書かない,あるいは,何が何でも設定ファイルを書く,といった「原理主義者」も多く,多くの場合は彼らの説明に「コンテキスト」が含まれない。よって,主張を聞いても,実際に何らかのDIコンテナを使う際をイメージした場合,その主張に沿う部分と沿わない部分が僕個人の中で発生し,完全に主張を受け入れられないことがよくある。 結局のところ「DIコンテナをどう使うか」(=上記で言ったコンテキスト)によって,暗黙知とするか形式知とするかを判断しなければならないと思っている。 DIコンテナの適用パターンとして代表的なものは,「View,Business Logic,Dao」といった3

  • DIコンテナなんていらない - usagidropの日記

    DIコンテナなんていらない。PHPのようなスクリプト言語では。 JavaでDIコンテナが必要なのは、Javaがコンパイル型言語であり、かつ記述が長ったらしいという特徴があるからだ。そのため、頻繁に変更したい部分をXMLファイルに外だしする必要がある。 しかしPHPのようなスクリプト言語では、コンパイルの必要がないし、コードも簡潔に書ける。わざわざXMLファイルを用意する必要はなく、PHPファイルを設定ファイルに使えばいい。 例えば次のようなDIコンテナの設定とJavaコードがあるとする。 <component class="ClassA"> <arg>"foo"</arg> <arg>123</arg> </component>S2Container container = S2ContainerFactory.create("dicon.xml"); InterfaceA obj = (

    DIコンテナなんていらない - usagidropの日記
  • DIコンテナの本当の使いどころ | ウルシステムズ株式会社

    DI の自由度は諸刃の剣 近ごろ、「実プロジェクトでDIコンテナ(注1)を導入している」という話をちらほら耳にするようになりました。それと同時に、「DIコンテナを使ったプロジェクトが大変なことになっている」という話も耳にするようになりました。DIの魅力を十分に享受して低コスト、高品質を実現しているプロジェクトがある一方で「DIを導入してみたのはいいのだけれど、DIの設定ファイルが大きくなりすぎて管理しきれない」「DIを使っているのに、テスタビリティが全然向上していない」など苦労しているプロジェクトもあるようです。この差はいったいどこから来るのでしょうか。 DIは、EJBなどと比べると比較的取っ付きやすい技術ではありますが、ほかの技術同様、誤った使い方では十分に力を発揮できません。DIコンテナは非常に単純明快な技術ではありますが、そのシンプルさ故に自由度が高くさまざまな使い方ができます。その

    DIコンテナの本当の使いどころ | ウルシステムズ株式会社
  • 最小のDIコンテナ in PHP - id:anatooのブログ

    DIコンテナがなにやら大仰なものとして勘違いされているような気がしたので、機能を極限まで削ぎ落とした最小のDIコンテナを書いた。 これにはAOPは当然ないし、設定ファイルなどもない。 <?php // DIContainer.php class DIContainer { protected $componentFactory; function __construct(ComponentFactory $c) { $this->componentFactory = $c; $c->accept($this); } function get($name) { $name = strtolower($name); if (!isset($this->objects[$name])) { $this->objects[$name] = $this->componentFactory->get(

    最小のDIコンテナ in PHP - id:anatooのブログ
  • 1