DIコンテナ
Posted: 1月 22nd, 2012 | Author: yoheim | Filed under: Flex, flash | No Comments »
【DIコンテナ】
DIは,コンポーネント(クラス)間の依存関係をソースコードから取り除くことで,
プログラムの実行時までコンポーネント同士が依存関係を持たないようにするデザインパターンです。
(from ITpro http://itpro.nikkeibp.co.jp/article/COLUMN/20060628/241982/)
ということで先週くらいにも一つサンプルを作っていたのですが、
1週間とたたないうちに頭からすっぽり抜けたので
今回はjavaで解説をしてくださっていた
こちらのサイトを参考にASに代えてもっかいやってみました。
下記に記録としてコードを書いておきます。
【Main.as】(ドキュメントクラス)
package
{
import flash.display.Sprite;
import greetings.GoodByGreeting;
import greetings.GreetingClient;
import greetings.HelloGreeting;
public class Main extends Sprite
{
public function Main()
{
var client:GreetingClient=new GreetingClient(new HelloGreeting());
//var client:GreetingClient=new GreetingClient(new GoodByGreeting());
client.doGreeting();
//実行結果ーー>”hellooooo”
}
}
}
【IGreeting】(インターフェイス)
package greetings
{
public interface IGreeting
{
function sayGreeting():void;
}
}
【IGreetingClient.as】(インターフェイス)
package greetings
{
public interface IGreetingClient
{
function doGreeting():void;
}
}
【greeings.GoodByGreeing.as】
package greetings
{
import com.demonsters.debugger.MonsterDebugger;
public class GoodByGreeting implements IGreeting
{
public function GoodByGreeting()
{
MonsterDebugger.initialize(this);
}
public function sayGreeting():void
{
//trace(”goodBye!”);
MonsterDebugger.trace(this,”goodBye”);
}
}
}
【HelloGreeting.as】
package greetings
{
import com.demonsters.debugger.MonsterDebugger;
public class HelloGreeting implements IGreeting
{
public function HelloGreeting()
{
MonsterDebugger.initialize(this);
}
public function sayGreeting():void
{
//trace(”Helloooooo!”);
MonsterDebugger.trace(this,”hellooooo”);
}
}
}
なるへそ。簡単なものならなんとか理解。
delegateの概念とFacadeパターンを今日は理解したい。
—>http://feb19.jp/blog/archives/000199.phpをやって多少理解しました。
でも、自分で使えるようになるにはまだまだ..。
セキュリティ周りも少々やらな。









