2011년 6월 2일 목요일

Virtual Attributes

모든 속성 접근 메서드가 객체의 인스턴스 변수에 접근하는 단순 wrapper일 필요는 없다. 만약 Song의 연주시간이 초단위가 아닌 분단위로 가져오고 싶다면
class Song
 def durationInMinutes
   @duration/60.0   # force floating point
 end
 def durationInMinutes=(value)
   @duration = (value*60).to_i
 end
end
aSong = Song.new("Bicylops", "Fleck", 260)
aSong.durationInMinutes»4.333333333
aSong.durationInMinutes = 4.2
aSong.duration»252



위 코드에서는 가상 인스턴스 변수를 만들어 유지하는 방법으로 속성 메서드를 사용했다. 객체 외부에서 보면 당연히 durationInMinutes는 다른 속성 메서드와 달라 보이지 않을 것이다. 이 방식은 인스턴스 변수와 계산된 값의 차이점을 숨겨서, 클래스 구현에서 나머지 세상을 보호할 수 있는 방법을 제공한다.

댓글 없음:

댓글 쓰기

ETL 솔루션 환경

ETL 솔루션 환경 하둡은 대용량 데이터를 값싸고 빠르게 분석할 수 있는 길을 만들어줬다. 통계분석 엔진인 “R”역시 하둡 못지 않게 관심을 받고 있다. 빅데이터 역시 데이터라는 점을 볼때 분산처리와 분석 그 이전에 데이터 품질 등 데이...