ところで、チョット違う話ですが、FooProxyクラスのFooImpleへの依存を断ち切り、Fooを外部から注入するようにします。ここではコンストラクタでFooを渡します。
ところで、チョット違う話ですが、FooProxyクラスのFooImpleへの依存を断ち切り、Fooを外部から注入するようにします。ここではコンストラクタでFooを渡します。
public class FooLogger implements Foo {private Foo foo;public FooLogger(Foo foo) {this.foo = foo;}@Overridepublic void foo() {try {System.out.println("foo start");foo.foo();} finally {System.out.println("foo end");}}@Overridepublic void bar() {try {System.out.println("bar start");foo.foo();} finally {System.out.println("bar end");}}@Overridepublic void baz() {try{System.out.println("baz start");foo.baz();} finally {System.out.println("baz end");}}}