"위임 패턴"의 두 판 사이의 차이

잔글 (봇: 자동으로 텍스트 교체 (-<source +<syntaxhighlight , -</source> +</syntaxhighlight>))
 
(사용자 2명의 중간 판 5개는 보이지 않습니다)
10번째 줄: 10번째 줄:


==예시==
==예시==
<source lang='java'>
<syntaxhighlight lang='java'>
public class Main {
public class Main {
     public static void main(String[] args) {  
     public static void main(String[] args) {  
28번째 줄: 28번째 줄:
     void print() { System.out.println("something"); }
     void print() { System.out.println("something"); }
}
}
</source>
</syntaxhighlight>


==같이 보기==
==같이 보기==
*[[콜백 함수]]
{{z컬럼3|
*[[캡슐화]]
* [[위임]]
*[[옵저버 패턴]]
* [[상속]](inheritance)
*[[어댑터 패턴]]
* [[캡슐화]]
*[[디자인 패턴]]
* [[콜백 함수]]
*[[객체 지향]]
* [[객체 지향]]
*[[상속]]
* [[헬퍼 클래스]]
*[[Csharp 대리자|C# 대리자]] (delegate)
* [[옵저버 패턴]]
* [[어댑터 패턴]]
* [[디자인 패턴]]
* [[Csharp 대리자|C# 대리자]] (delegate)
}}


==주석==
==참고==
<references/>
 
==참고 자료==
*http://en.wikipedia.org/wiki/Delegation_(programming)
*http://en.wikipedia.org/wiki/Delegation_(programming)
*http://en.wikipedia.org/wiki/Delegation_pattern
*http://en.wikipedia.org/wiki/Delegation_pattern


[[분류: 객체지향]]
[[분류: 객체지향]]

2021년 3월 17일 (수) 21:30 기준 최신판

1 개요[ | ]

delegation, delegation pattern
위임, 위임 패턴, 대리자, 대리자 패턴
  • 어떤 객체의 조작 일부를 다른 객체에게 넘김
위탁자(delegator) → 수탁자(delegate)
  • 어떤 일의 책임을 다른 클래스 또는 메소드에게 넘김
  • 한 객체가 기능 일부를 다른 객체로 넘겨주어, 첫번째 객체 대신 수행하도록 하는 일
  • 위임을 활용하면 한 객체의 변경이 다른 객체에 미치는 영향이 작아진다.
  • 다른 클래스의 기능을 사용하되 그 기능을 변경하지 않으려면 상속 대신 위임[1]

2 예시[ | ]

public class Main {
    public static void main(String[] args) { 
        Printer printer = new Printer();
        printer.print(); // 프린터야, 프린트해줘.
    }
}

// "delegator" 위탁자 (떠넘기는 사람, 갑)
class Printer { 
    RealPrinter p = new RealPrinter(); // 대신해줄 객체 생성
    void print() { p.print(); } // 위임!
}

// "delegate" 수탁자 (위임 받은 사람, 실무수행자, 을)
class RealPrinter { 
    void print() { System.out.println("something"); }
}

3 같이 보기[ | ]

4 참고[ | ]

  1. 상속은 확장(변경)할 때 사용
문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}