티스토리 뷰

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
407,535
Today
9
Yesterday
19
«   2019/09   »
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          
글 보관함