SqueakByExample:5.2: Difference between revisions
Jump to navigation
Jump to search
Onionmixer (talk | contribs) (붙여넣기 오류수정) |
Onionmixer (talk | contribs) (번역수정) |
||
Line 16: | Line 16: | ||
더 나아가, 클래스는 2등급 오브젝트가 아닙니다: 클래스는 여러분이 메시지를 보내고 점검하고 다른 작업들을 할 수 있는 1등급 오브젝트입니다. 이런 특성은 스퀵이 개발자들이 많은것을 할 수 있게 해주는 진정한 | 더 나아가, 클래스는 2등급 오브젝트가 아닙니다: 클래스는 여러분이 메시지를 보내고 점검하고 다른 작업들을 할 수 있는 1등급 오브젝트입니다. 이런 특성은 스퀵이 개발자들이 많은것을 할 수 있게 해주는 진정한 reflection(반영적) 시스템이라는 것을 의미합니다. | ||
스퀵의 구현내용을 깊이 들어가보면, 세 가지 다른 종류의 오브젝트가 있다는것을 알 수 있습니다. (1) 참조로 전달하는 인스턴스 변수들을 가진 보통 오브젝트, (2) 값에 의해 전달하는 작은 정수인 보통 오브젝트, (3) 메모리의 인접한 부분을 차지하는 배열처럼, 색인화 가능한 오브젝트가 있습니다. 스몰토크의 아름다움은, 여러분이 이 세 종류의 오브젝트들 사이의 차이점에 관해 일반적으로 관심을 가질 필요가 없다는것에 있습니다. | 스퀵의 구현내용을 깊이 들어가보면, 세 가지 다른 종류의 오브젝트가 있다는것을 알 수 있습니다. (1) 참조로 전달하는 인스턴스 변수들을 가진 보통 오브젝트, (2) 값에 의해 전달하는 작은 정수인 보통 오브젝트, (3) 메모리의 인접한 부분을 차지하는 배열처럼, 색인화 가능한 오브젝트가 있습니다. 스몰토크의 아름다움은, 여러분이 이 세 종류의 오브젝트들 사이의 차이점에 관해 일반적으로 관심을 가질 필요가 없다는것에 있습니다. |
Revision as of 14:58, 4 March 2013
모든 것은 오브젝트다
"모든 것은 오브젝트다" 라는 문구는 상당한 중독성이 있습니다. 스몰토크로 조금이라도 작업을 해본다면, 이 규칙이 당신이 하려는 모든 작업을 얼마나 단순하게 만드는지에 대해 놀랄겁니다. 예를 들면, 정수는 실제로 오브젝트이므로, 여러분은 다른 객체에 메시지를 보냈던 것처럼, 정수에도 역시 메시지를 보낼 수 있습니다.
3+4 | ⇒ 7 ""7을 얻기 위해 '+ 4'를 3으로 보냅니다" |
20 factorial | ⇒ 2432902008176640000 "큰 수를 위해 팩토리얼을 보냅니다" |
20 factorial 이라는 표현과 7 은 분명 다르지만, 둘 다 일반 문법이 아닌 오브젝트이기 때문에 어떤 코드도 -하다못해 factorial 의 구현조차도- 알아야할 필요는 없습니다. 이러한 규칙으로 알 수 있는 결과는 다음과 같습니다.
클래스 또한 오브젝트 입니다.
더 나아가, 클래스는 2등급 오브젝트가 아닙니다: 클래스는 여러분이 메시지를 보내고 점검하고 다른 작업들을 할 수 있는 1등급 오브젝트입니다. 이런 특성은 스퀵이 개발자들이 많은것을 할 수 있게 해주는 진정한 reflection(반영적) 시스템이라는 것을 의미합니다.
스퀵의 구현내용을 깊이 들어가보면, 세 가지 다른 종류의 오브젝트가 있다는것을 알 수 있습니다. (1) 참조로 전달하는 인스턴스 변수들을 가진 보통 오브젝트, (2) 값에 의해 전달하는 작은 정수인 보통 오브젝트, (3) 메모리의 인접한 부분을 차지하는 배열처럼, 색인화 가능한 오브젝트가 있습니다. 스몰토크의 아름다움은, 여러분이 이 세 종류의 오브젝트들 사이의 차이점에 관해 일반적으로 관심을 가질 필요가 없다는것에 있습니다.