3

いくつかの場所に注入されたクラス A があります。A の同じインスタンスをどこにでも注入したいと思います-シングルトンのようなものですが、注入します。

Typhoonでそれを行うことは可能ですか?

4

1 に答える 1

2

Typhoon には、これに使用できる 3 つのスコープ、TyphoonScopeSingletonTyphoonScopeLazySingleton、およびTyphoonScopeWeakSingletonがあります。

コンポーネントのスコープを設定するには:

- (PFRootViewController *)rootViewController
{
    definition.scope = TyphoonScopeSingleton;
}

このスコープを使用すると、シングルトンのすべての利点が得られますが、DI パターンでは欠点が回避されます。

台風スコープの詳細:

他の言語の多くの DI コンテナーはデフォルトのスコープがsingletonですが、Typhoon のデフォルトのスコープはTyphoonScopeObjectGraphです。シングルトンのデフォルト スコープを持つことは、アプリケーションが特定の時間にあらゆるユースケースを処理する可能性があるサーバー環境にとって意味があります。

一方、Typhoon はモバイルおよびデスクトップ環境を対象としているため、オブジェクト グラフ スコープは、アセンブリをメモリに読み込み (View Controller の例)、別のユースケースに進んだ後に破棄するように設計されています。親 (デリゲートなど) を指す循環依存関係などの共有参照はすべて共有されます。

もちろん、これがデフォルトですが、他のスコープが必要な場合もあります。詳細については、ユーザー ガイドのスコープ セクションを参照してください

于 2014-10-17T02:50:29.107 に答える