저는 델파이 초짜입니다. --;
델파이를 쪼금하다가..
C#을 배우고 있죠..
C#을 배우다 보니..인터페이스라는 단어가 나오더군요.
어디서 많이 듣던 단어라 했는데..
델파이에서는..COM을 쓰기위해서..인터페이스를 쓰더군요.
닷넷 라이브러리는 인터페이스에 의해 동작되는 게 많이 있습니다..(델파이VCL도 알게 모르게 그런 클래스들이 있을껄로 압니다..)
닷넷 라이브러리는..거의 VCL과 비슷한 것 같더군요..(그래서 C++보다 델파이를 먼저 시작한게 다행이다..라고 생각하고 있죠..--;)
생각해보시면..OOP에 맞게 디자인 하실려면..
클래스의 다중상속보다..
인터페이스의 다중상속이 더 좋은 거 같습니다.
그래서 C#에서 다중상속부분을 제거 한거 같기도 합니다.
예를 들어..
'한진우' 라는 인간의 인스턴스를 생각해봅시다.
'한진우'는
'생물'클래스를 상속받은 '인간'클래스의 인스턴스죠..
그런데..
'인간'클래스는 '움직인다', '먹는다'...등등 여러 인터페이스를 상속받고 있죠.
구현은..머..
'움직인다' --> '두발로 걸어다닌다'
'먹는다' --> '씹어 먹는다'
'생물' 클래스의 '뱀' 클래스를 봅시다
'뱀'클래스도 또한 '움직인다', '먹는다'의 인터페이스를 상속받고 있죠..
하지만 구현이 다릅니다.
'움직인다' --> '기어 다닌다.'
'먹는다' --> '삼켜 먹는다.'
고로..
'뱀'도 '움직인다'
'인간'도 '움직인다'
로 접근 가능하죠..^^;
말이 이상해졌네요^^;
클래스의 다중상속으로 위와 같이 구현할려면 어떻게 해야 하나요?
쫌더 복잡할껄요..
'움직이는 생물' 클래스, '먹는 생물' 클래스를 만들어서 다중 상속해야 겠죠..
어떤게 더 편하십니까?
어떤게 더 OOP에 맞다고 생각하십니까?
이게 요 며칠전에 배운 겁니다..^^
결론은요..
델파이에서는 인터페이스를 어렵게 다가가는 거 같습니다.
클래스와 같은 레벨로 인터페이스를 다루면..더 좋은 프로그램이 나올듯 합니다.
끝~~
박정모 님이 쓰신 글 :
:
:
: 왜 델파이는 다중 상속을 지원안하는 겁니까?
: 컴파일속도 좀 느려져도 괜찮은데, 문법이 까다로워져도 상관없는데,
: Pascal언어 확장팩으로 라도 좋으니까 제발 다중 상속좀 지원해줬으면...
:
: 정말 미치겠네요. 깊이 있는 클래스 설계할 때마다 부딪히는게 다중
: 상속입니다. 다중상속 지원안해서 해야하는 이 노가다의 버거움이여... ㅠ.ㅠ
: 서로 다른 클래스에 같은성질의 멤버함수 만들고 또 만들고~
:
: 박지훈씨... 박지훈씨 힘 있으니까 볼랜드에다가 제안좀 해주십시요.
: 언어 확장팩으로라도 다중상속 지원하게 해달라고.
:
: 다중상속을 위한 Pascal언어 확장팩이 나오면 100만원 한다고 해도
: 사서 쓰겠습니다.
:
: 그러지말고 C++ Builder 쓰라고요? 저도 C++ Builder쓰고 싶습니다. 그런데
: C++ Builder로 만들어 놓으면 아무래도 범용성이 떨어지니까... ㅠ.ㅠ
:
:
|