[디자인 패턴] 위임 패턴 (Delegation Pattern)

KangHo Lee's avatar
Jan 03, 2025
[디자인 패턴] 위임 패턴 (Delegation Pattern)

1. 위임 패턴 개념

  • 위임 패턴은 객체가 특정 작업을 다른 객체에 위임하여 유연성을 높이고 코드의 재사용성을 촉진하는 디자인 패턴입니다.
  • 이를 통해 객체는 스스로 직접 작업을 수행하는 대신, 다른 객체에게 작업을 요청하게 됩니다.

2. 자바 예시

1. MyDelegate 클래스

java
public class MyDelegate { public void printMessage(String message) { System.out.println("Message: " + message); } }
  • MyDelegate 클래스는 printMessage 메서드를 가지고 있으며, 메시지를 출력하는 역할을 합니다.

2. MyClass 클래스에서 MyDelegate를 위임받아 사용

java
public class MyClass { private MyDelegate delegate = new MyDelegate(); public void showMessage(String message) { delegate.printMessage(message); // 위임 패턴 사용 } public static void main(String[] args) { MyClass myClass = new MyClass(); myClass.showMessage("Hello, Delegation Pattern!"); } }
 
  • MyClass 클래스는 delegate라는 MyDelegate 클래스의 인스턴스를 가지고 있으며, showMessage 메서드를 통해 메시지를 출력하는 작업을 MyDelegate 객체에 위임합니다.
  • main 메서드에서 MyClass의 인스턴스를 생성하고, showMessage 메서드를 호출하면 실제로는 MyDelegate 객체의 printMessage 메서드가 호출됩니다.

설명

  • 역할 분리
    • MyDelegate 클래스는 메시지를 출력하는 기능만을 담당하며, MyClass 클래스는 이 기능을 MyDelegate 객체에 위임합니다.
  • 유연성 향상
    • MyClass 클래스는 메시지를 출력하는 방법을 직접 정의하지 않고, MyDelegate 클래스를 통해 처리함으로써 코드의 유연성을 높입니다.
  • 재사용성 증대
    • MyDelegate 클래스는 다른 클래스에서도 재사용될 수 있으며, MyClass 클래스는 다른 작업을 추가할 때 MyDelegate 클래스의 기능을 활용할 수 있습니다.
 
Share article

devleekangho