くGuice作成したオブジェからダムのデータオブジェクト
-
18-09-2019 - |
質問
私の落ち込み、使用Guiceのために私の最新のプロジェクト.全体の印象は良いのかを打ったいなもんです。
背景:このJava6申請を受け入れるコマンドネットワークを解析しそのコマンドを利用して変更内部データ構造です。このシミュレータの一部のハードウェアの製造を行う.の変化かについて意見表明するための内部データ構造に合わせはコマンドのハードウェア、その後のクエリのデータ構造を反映したものにすべきであるハードウェアの状態に基づく従来行っています。
行ったのは、コマンドオスにアクセスする必要性がその内部データ構造です。方構造となってGuiceかによって異なり、実際のインスタンスのハードウェアとエミュレーション.コマンドのオブジェな作Guiceいたとは本質的にダムオブジェクトて受け入れている文字列の構文解析では、メソッドを呼び出し、データ構造です。
なだけでこの仕事はそのコマンドのオブジェ作Guiceおよびパスのデータ構造を介した。でも無骨、bloatsのコンストラクタのデータオブジェクト。
何だったので買ってきた。
解決
依存性の注入は、配線サービスのために最も適しています。値のオブジェクトを注入するために使用することができるが、これはそれらのオブジェクトが可変である場合は特にビット厄介であることができる。
あなたが自分で作成したオブジェクトをバインドするためにプロバイダと@Provides
メソッドを使用することができ、言った。
他のヒント
仮に対応するコマンドがないのですからへの対応にhttp要求と思うん、たものである。
使用するパターンにhttpリアラップの論理ン向けのアプリケーションを短寿命のオブジェクトの両方のパラメータからの要請および一部の除去を噴射します。そのインスタンスを生成などのオブジェクトと呼び、parameterlessる方法はすべてマジックがあります。
もスコープが参考になんだか?見 込書 や 一部のコード例 のための技術。コードでより以下のようにする。こちらはどこがお場合:
class MyRobot {
Scope myScope;
Injector i;
public void doCommand(Command c) {
myScope.seed(Key.get(Command.class),
i.getInstance(Handler.class).doSomething();
}
}
class Handler {
private final Command c;
@Inject
public Handler(Command c, Hardware h) {
this.c = c;
}
public boolean doSomething() {
h.doCommand(c);
// or c.modifyState(h) if you want c to access internals of h
}
}
人frownにこのソリューションは、私がこのコード依存Guiceの少なくとも二つの異なる。
付与しょう注入のビット値のオブジェクトのコンストラクタがない場合はq値のオブジェクトではなくパラメータのクラスを変更で行動では意味がある。
は少くともfrownに注入する値オブジェクトは、見かけのこのプロジェクトに依存Guiceしばらくことになっている。