de-vook / The-Essence-of-Object-Orientation

책 <객체지향의 사실과 오해> 그룹 스터디
18 stars 3 forks source link

[호댕 & 고사리] extension은 타입일까요? #22

Closed gogosilver closed 2 years ago

gogosilver commented 2 years ago

타입의 목적 파트를 읽고 함께 이야기를 나누던 중에, extension이 타입인지에 대한 이야기가 나왔습니다. 단순히 타입으로 보기에는 타입의 확장을 위한 일정 기능만을 가지고 있다고 생각되는데 동시에, 내부적인 표현은 타입과 일치하는 것이 혼란스러웠습니다.

여러분은 어떻게 생각하시나요?

jsim27 commented 2 years ago

익스텐션이 타입이라면 심볼, 내연, 외연으로 서술할 수 있어야(p.89) 하는데, 우리는 익스텐션에 별도의 이름(심볼)을 붙여주지 않고, 해당 익스텐션에 해당하는 외연이 존재할 수도 없으니까 타입이 아닌 것 같아요. 확장하는 대상인 기존 타입 없이 익스텐션만 독립적으로 존재할 수 없기도 하구요. 그래서 익스텐션은 타입이 아닌, "타입의 내연을 확장해 주는 도구"라고 생각했습니다!

July911 commented 2 years ago

나무의 의견에 동의합니다. 저도 타입의 내연을 확장해주는 도구라고 생각합니다.

yim2627 commented 2 years ago

저는 독립적인 타입이 아닌 extension을 사용하여 확장하려는 타입(ex: extension String에서 String) 자체를 갖고오는 도구라고 생각합니다. (기존 타입이 없으면 무의미) 따로 타입을 만들어주는게 아니라 기존 타입에 기능을 추가함으로써 수평적인 확장을 하는 것이라고 알고있어서요 또한 기존에 정의되어 있지 않은 타입을 확장할 수 없으니까요