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 = C.new() c.m1_m() c.m2_m() | cs |
위의 코드를 찬찬히 읽어보면 단번에 어떤 부분이 믹스인인지 알수 있을 것이다. 바로 include라는 부분이다.
먼저 모듈 M1과 M2가 선언되며, 클래스 C가 이 모듈들을 include한다.
모든 과정이 끝난후에 C 클래스의 인스턴스를 만들어 주고, include한 두 모듈들의 메소드를 호출하면
에러없이 정상적으로 동작하게 된다.
따라서, C가 M1과 M2의 메소드를 포함하고 있는 것처럼 행동하는 것이 믹스인의 핵심 이다.
출처 : 생활코딩, 파이썬&루비
반응형
'개발' 카테고리의 다른 글
[ReactJS] 튜토리얼(Tutorial) - 1 (0) | 2017.06.10 |
---|---|
[기술의역사] 파이썬(Python) (0) | 2017.06.09 |
[파이썬&루비] 다중상속(Multiplex Inheritance) (0) | 2017.06.02 |
[파이썬&루비] 객체와 모듈 (0) | 2017.06.02 |
[파이썬&루비] 오버라이드(Override) (0) | 2017.06.02 |
댓글