Closed yuminhwan closed 2 years ago
WrappedObject 인스턴스와 Wrapper의 인스턴스가 다르기 때문에 (상속 관계도 아니고) Wrapper가 wrappedObject의 doSomething()을 호출하면 해당 스레드는 wrappedObject의 doSomething()의 코드 블록으로 이동하면서 this를 wrappedObject로 설정하는 것으로 알고 있습니다.
class WrappedObject implements SomethingWithCallback {
private final SomeService service;
WrappedObject(SomeService service) {
this.service = service;
}
@Override
public void doSomething() {
// 스레드가 이 코드 블록으로 들어오면 this = WrappedObject가 되는 것으로 알고 있습니다?
service.performAsync(this);
}
@Override
public void call() {
System.out.println("WrappedObject callback!");
}
}
public static void main(String[] args) {
SomeService service = new SomeService();
WrappedObject wrappedObject = new WrappedObject(service); // 두 인스턴스는 완전히 다르다.
Wrapper wrapper = new Wrapper(wrappedObject);
wrapper.doSomething();
}
p.119 두번째 문단
예제 코드인데 정확히 이해가 되지 않는 느낌입니다. 이해 하신 분 설명 부탁드립니다 ㅠㅠ
p.120 두번째 문단
Properties를 키와 값으로 문자열만 허용하도록 할려면 어떻게 컴포지션을 이용해야 할까요??