다형성(Polymorphism)
다형성의 의미로만 본다면 자바의 다형성과 동일한 넘으로 보인다.

클래스 구조를 보면서 이넘이 다형성이다 라고 설명하는 글들을 많이 보기는 했지만.. 개인적으로 쉽게 마음에 와 닫는 설명은 텀즈의 용어설명이 아닐까 생각한다. ^^

Polymorphism("여러 개의 형태를 가진다"는 의미의 그리스어에서 유래됨)이란 특정한 심벌이나 연산자에 대해 상황이 다르면, 그 의미도 다르게 부여할 수 있는 특성을 말한다.

동적 타이핑(Dynamic typing)
쉽게 얘기해서 타입(오브젝트 타입?)이 동적으로 결정된다는 의미이다. 결국 실행할 때(런타임) 타입이 결정된다는 얘기이다.

자바의 Reflection 과 비슷한듯 싶지만 잠깐 맞본 느낌으로는 자바의 그넘보다는 잘 설계되었다는 느낌?? 쓰기 편하다는 느낌?? ^^


동적 바인딩(Dynamic binding)
처음엔 동적 바인딩이라는 넘이 쉽게 와 닫지 않았다. 뭐.. 한넘만 주구장창 파다보니.. 요모양 요꼴이 된듯.

Objective-C 라는 놈은 자바의 Object 객체처럼 id라는 넘이 존재한다. 이 id라는 넘은 void* 로써, 객체의 주소를 표현하는 방식으로 사용하는 데이터 타입이다. 여기까지만 보면 단순히 Object Class 보다 낳은 점이 없어보이지만 형변환 없이 사용가능 하다는 얘기가 나오면서 차이점이 확실히 생긴다. 개인적으로 더 좋다 나쁘다는 처음 사용하는 나로써는 판단하기 이른듯 싶다.

결국 동적바인딩은 id라는 놈 때문에 호출하는 메소드를 런타임때 결정하겠다는 얘기이다.

이넘저넘 읽다가 이해한 내용을 정리했기 때문에 맞다 틀리다고 얘기할 수 없다. 누군가가 테클을 걸어주면 고마울 따름 ^^
Posted by 짱가쟁이