public class Learn extends Music{ public function Learn(){ design(); seo(); rock(); snowboarding(); skateboarding(); movie(); if(me==happy){ everyone == happy; }else if(me==sad){ drink++; } } }

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をやって多少理解しました。
でも、自分で使えるようになるにはまだまだ..。
セキュリティ周りも少々やらな。