본문 바로가기
개발

[파이썬&루비] 믹스인(Mixin)

by 마스터누누 2017. 6. 2.
728x90
반응형

믹스인(Mixin)



앞서 파이썬에서 다중 상속에 대해 살펴보았다.

다중 상속에서 루비에 대해 다루지 않은 이유는 루비는 다중상속을 지원하지 않기때문이다.

대신 믹스인이라는 세련된 방법을 사용한다. 믹스인이라는 것은 객체와 모듈의 관계이다.





1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# ruby
module M1
  def m1_m
    p "m1_m"
  end
end
module M2
  def m2_m
    p "m2_m"
  end
end
class C
  include M1, M2
end
= C.new()
c.m1_m()
c.m2_m()
cs


위의 코드를 찬찬히 읽어보면 단번에 어떤 부분이 믹스인인지 알수 있을 것이다. 바로 include라는 부분이다.

먼저 모듈 M1과 M2가 선언되며, 클래스 C가 이 모듈들을 include한다.

모든 과정이 끝난후에 C 클래스의 인스턴스를 만들어 주고, include한 두 모듈들의 메소드를 호출하면

에러없이 정상적으로 동작하게 된다.

따라서, C가 M1과 M2의 메소드를 포함하고 있는 것처럼 행동하는 것이 믹스인의 핵심 이다.



출처 : 생활코딩, 파이썬&루비


반응형

댓글