본문 바로가기
Back-end/Java

델리게이션 구조란?

by JiGyeong 2019. 6. 10.

위임 또는 위탁이라고 보면 된다. 델리게이션은 실행 중에 동적으로 할당할 수 있다.

 

델리게이션은 언어 구조라기보다는 객체가 서로 기능을 분담해서 연계하며 작동하는 전형적인 디자인 패턴이다. 객체지향에서는 보통 델리게이트(델리게이션) '어떤 객체가 처리할 수 없는 메시지를 받았을 때 다른 객체에 처리를 대신하게 하는 구조'라고 설명한다.

 

클래스 로더가 클래스 로딩을 요청받게 되면 캐시, 부모 클래스 로더, 자신 클래스 로더 순으로 클래스 로딩이 된다. 캐시에서는 클래스를 로딩한 적이 있는지 확인한다. 이전에 로딩된 클래스는 해당 클래스 로더의 캐시에 저장되고 다음 번 요청 시 캐시에 저장된 내용을 사용한다. 해당 클래스를 로딩한 적이 없다면 상위 부모 클래스 로더에게 클래스 로딩 요청을 위임한다. 클래스 로딩을 위임받은 부모 클래스 로더 또한 자신의 캐시를 먼저 확인하고 해당 클래스를 이전에 로딩한 적이 없다면 그 클래스 로더의 부모에게 클래스 로딩을 위임하는 동일한 과정을 거친다. 최상위 부트스트랩 클래스 로더까지 요청이 위임되고 이전에 클래스가 로딩된 적이 없다면 최상위 부모부터 자식 클래스 로더 순서로 클래스 로딩을 시도한다. 이러한 방식을 '델리게이션 구조'라 한다.

 

 

'Back-end > Java' 카테고리의 다른 글

[디자인패턴] Observer Pattern  (0) 2019.09.10
[디자인 패턴] Bridge Pattern  (0) 2019.08.21
[JAVA] Thread  (2) 2016.06.10
[Java] SingleTon 기본 static  (0) 2016.04.28
[JAVA] 클래스 상속 interface, implements  (0) 2016.04.11