클래스 << self를 사용하면 클래스 나 모듈을 언제 사용할 수 있습니까?
class Helper
class << self
# ...
end
end
및
module Helper
class << self
# ...
end
end
당신이 다른 이상을 사용하는 것 사이의 사용량에 차이가 있습니까?
클래스 << self를 사용하면 클래스 나 모듈을 언제 사용할 수 있습니까?
class Helper
class << self
# ...
end
end
및
module Helper
class << self
# ...
end
end
당신이 다른 이상을 사용하는 것 사이의 사용량에 차이가 있습니까?
class<<self
은 클래스와 모듈의 유일한 차이점이 있기 때문에 빨간 청어 인 것 같습니다. 아마도 "인스턴스화하지 않으려는 개체를 만들고 싶지만 일부 메서드의 네임 스페이스로만 존재할 수 있습니다. (또한 고유 한 전역, 상태를 가진 단일 개체 일 수도 있습니다)."
이 경우, 둘 다 똑같이 작동합니다.
class Variation < Helper
대신
module Helper
module OwnMethods
# Put methods here instead of class << self
end
extend OwnMethods
end
module Variation
extend Helper::OwnMethods
의 : 당신이 파생 상품 (같은 방법을 상속하는 다른 개체)를 만들 수 있다는 기회가 약간 쓰기 쉽습니다으로 다음 클래스를 사용해야가있는 경우
그러나 네임 스페이스의 경우 클래스를 통해 일반적으로 모듈을 사용합니다. 클래스는 인스턴스화가 발생 함을 의미하기 때문입니다.
모듈과 클래스의 차이점은 모듈이 아닌 클래스의 인스턴스를 만들 수 있다는 것입니다. Helper (h = Helper.new)의 인스턴스를 생성해야한다면 클래스 여야합니다. 그렇지 않은 경우 모듈을 유지하는 것이 가장 좋습니다. 나머지 코드가 질문과 어떻게 관련이 있는지 잘 모르겠습니다. 모듈 또는 클래스에 클래스 메서드가 있는지 여부는 해당 개체의 인스턴스를 만들어야하는지 여부와 관련이 없습니다.
그들 중 하나는 다른 문자 하나가 있습니까? :) "차이가 있습니까?"라는 것이 무엇을 의미합니까? 하나는 클래스이고, 하나는 모듈이며, 둘 다 eigenclass에 들어갑니다. – Phrogz
나는 언제 다른 것을 사용할지 묻는다는 것을 의미한다고 생각합니다. 나는 그것을 반영하기 위해 질문을 편집했다. –