It's just like pok    version4


루비와 오리타입

 | 

루비는 오리타입을 지향한다.

오리타입이라 함은 ‘오리처럼 행동하면, 오리로 봐라’ 를 행동강령으로 가지는 타입을 의미한다.

오리타입의 대표적인 예가 Array이다.

루비에는 Queue나 Stack이 없다. 대신, Array로 Queue와 Stack의 역할을 할 수 있다. Array가 Queue처럼 굴면, Queue로 보고 Stack 처럼 굴면 Stack으로 보라는게 루비의 철학이다.

나 같은 경우는 제일 익숙한 언어인 C++을 기준으로 저 Array의 오리타입을 오리로 바꾸어 사용한다.


module Pok

    class Stack < Array
        def push_back( _element )
            push(_element)
        end

        def pop_back
            pop
        end
    end

    class Queue < Array
        def push_back( _element )
            push(_element)
        end

        def pop_front
            shift
        end
    end

end


프로그래밍 하드보일드