無料で使えるシステムトレードフレームワーク「Jiji」 をリリースしました!

・OANDA Trade APIを利用した、オープンソースのシステムトレードフレームワークです。
・自分だけの取引アルゴリズムで、誰でも、いますぐ、かんたんに、自動取引を開始できます。

Guiceを使ってみる - スコープ

Guiceから取得するインスタンスは、デフォルトでは「毎回作成」されます。シングルトンにするにはModuleで明示します。

インターフェイスと実装:

/**
 * サービスのインターフェイス
 */
static interface Cat {}
/**
 * サービスのインターフェイス
 */
static interface Kitten extends Cat {}
/**
 * サービスの実装
 */
static class KittenImpl implements Kitten {}

サンプル:

Injector injector = Guice.createInjector( new Module() {
    public void configure ( Binder b ) {
        // スコープを指定しない。→毎回インスタンスが生成される
        b.bind( Kitten.class ).to( KittenImpl.class );

        // スコープをシングルトンに。→同じインスタンスが返される。
        b.bind( Cat.class ).to( KittenImpl.class ).in( Scopes.SINGLETON );
    }
});

Kitten s  = injector.getInstance(Kitten.class);
Kitten s2 = injector.getInstance(Kitten.class);
System.out.println( s.equals( s2 ) ); // false

Cat c  = injector.getInstance(Cat.class);
Cat c2 = injector.getInstance(Cat.class);
System.out.println( c.equals( c2 ) ); // true

出力:

false
true