저는 텍스트 파서를 작성했습니다.Ruby on Rails : lib/디렉토리의 클래스를 효율적으로 사용합니다.
keywords = Dictionary.parse(text)
그러나, 파서 (LIB/dictionary.rb)의 어레이로서 메모리에 (예, 'stop_words.txt'의) 일부 데이터를로드한다 : 이상적으로 정적 클래스이어야한다.
따라서 파서가 사용되기 전에 해당 데이터를로드하는 생성자가 필요하므로 정적 클래스 일 수는 없습니다. 그런 다음
:
lib 디렉토리/dictionary.rb
def initialize
@stop_words = load_stop_words
end
모델/entry.rb
def parse
@dictionary = Dictionary.new
self.keywords = @dictionary.parse(self.text)
end
하지만 그건 얼마나 비효율적인가? 1000 항목이있는 경우 Dictionary 클래스는 파일의 내용이 거의 일정하더라도 'stop_words.txt'를 1000 번로드한다는 의미입니까?
여기 뭔가가 빠졌습니다. Dictionary 클래스의 여러 인스턴스를 만들지 않거나 응용 프로그램이 실행 중일 때 데이터를 한 번만로드하여 더 나은 솔루션이 있어야합니다.
클래스 (정적) 변수에 stop_words 목록을 남기고 Dictionary.parse 메소드에서 첫 번째 필요성에 따라 지연 초기화를 수행함으로써 정적 접근법을 사용할 수 있습니다 ... – Romain