2
これら2つのコードの違いは何ですか?両方とも同じ結果を生み出します。キャッシングでインスタンスとキャッシュの追加の違い
:インスタンスの追加
DefaultPicoContainer cachingContainer = new DefaultPicoContainer(new OptInCaching().wrap(new ConstructorInjection()));
cachingContainer.as(Characteristics.CACHE).addComponent(Cookie.class);
Cookie cookie1 = (Cookie)cachingContainer.getComponent(Cookie.class);
Cookie cookie2 = (Cookie)cachingContainer.getComponent(Cookie.class);
assert(cookie1 == cookie2); // Same instance: OK
:あなたはコンテナにオブジェクトのインスタンス化を委任し、管理対象インスタンスがキャッシュされているその最初のケースで
DefaultPicoContainer instanceContainer = new DefaultPicoContainer(new ConstructorInjection());
instanceContainer.addComponent(Cookie.class, new Cookie());
Cookie cookie3 = (Cookie)instanceContainer.getComponent(Cookie.class);
Cookie cookie4 = (Cookie)instanceContainer.getComponent(Cookie.class);
assert(cookie3 == cookie4); // Same instance: OK