2010-05-14 5 views
3

다른 모듈 안에 클래스와 모듈을 중첩하여 네임 스페이스에 그룹화하는 개념에 익숙합니다.루비 중첩 클래스와 모듈

class A 
    class B 
    def method_B 
     ... 
    end 
    end 
end 
  • 중첩 모듈 다른 클래스에서 다른 클래스 내에서

    1. 중첩 클래스 뒤에 아이디어/목적은

      class A 
          module c 
          def method_c 
           ... 
          end 
          end 
      end 
      

    덕분에, 재 무엇

  • 답변

    1

    의미있는 의미를 드러내는 것과 관련하여 관련된 문제를 그룹화하는 것입니다. 숫자 1의 예로 HTTP :: Request (더 큰 HTTP 프로토콜 클래스에 포함 된 요청 클래스)는 FTP :: Request와는 아주 다른 것입니다. 모듈을 사용하면 Mixin을 처리하기 위해 Behavior :: InstanceMethods 및 Behavior :: ClassMethods의 공통 루비 관용구를 사용할 수 있습니다.

    +0

    이들은 모듈 내의 클래스의 예이지만 질문은 클래스의 클래스에 대한 것입니다. – Chuck

    +0

    HTTP는 모듈 일 필요는 없습니다. 그것은 당신이 프로그램을 어떻게 디자인 하느냐에 따라 수업이 될 수 있습니다. –

    +0

    그래서 그것은 단지 네임 스페이스 일 뿐이며, 클래스를 둘러싸는 클래스 만이 동봉 된 클래스의 인스턴스를 생성 할 수있는 것과 같은 특별한 동작을하지 않습니까? – user290870

    3

    클래스도 네임 스페이스이므로 동일한 생각입니다. Class는 Module의 하위 클래스이므로 모듈의 컨텍스트에서 얻으면 클래스의 컨텍스트에서 가져옵니다.

    관련 문제