개발

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

마스터누누 2017. 6. 2. 15:20
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의 메소드를 포함하고 있는 것처럼 행동하는 것이 믹스인의 핵심 이다.



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


반응형