티스토리 뷰

Python

What is delegation?

techbard 2016.05.09 11:56

# Delegation


"""

객체 B가 객체 A의 특화 버전이라고 한다면


- B는 A의 모든 특성을 가지고 있다.

- B는 A에는 없는 새로운 특성을 가지고 있다.

- B는 A와 공통으로 가진 특성에 대해 다른 식으로 동작할 수 있다.


* Delegation을 구현하는 두 가지 방법

1. inheritance

2. composition


- 1은 커플링의 문제가 있음

- 1은 부모 객체를 그대로 복사함

"""


class Output():

def __init__(self, s):

self.s = s


def printit(self):

print(self.s)


def print_delim(self):

print("=====" * 5)


class O():

def __init__(self, s):

self.output = Output(s)


def printit(self):

print(self.s.upper())


def __getattr__(self, attr):

return getattr(self.output, attr)


def print_parent(self):

print(self.output.s)


o1 = O("hello")

o1.printit()

o1.print_delim()

o1.print_parent()


# 결과

HELLO

=========================

hello




댓글
댓글쓰기 폼
공지사항
Total
409,794
Today
12
Yesterday
27
«   2019/11   »
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함