C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
분야별 포럼
C++빌더
델파이
파이어몽키
C/C++
프리파스칼
파이어버드
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

자유게시판
세상 살아가는 이야기들을 나누는 사랑방입니다.
[6765] 인터페이스의 다중상속에 대해서..
어린왕자A [xiote] 3522 읽음    2003-02-08 09:32
저는 델파이 초짜입니다. --;

델파이를 쪼금하다가..
C#을 배우고 있죠..
C#을 배우다 보니..인터페이스라는 단어가 나오더군요.
어디서 많이 듣던 단어라 했는데..

델파이에서는..COM을 쓰기위해서..인터페이스를 쓰더군요.

닷넷 라이브러리는 인터페이스에 의해 동작되는 게 많이 있습니다..(델파이VCL도 알게 모르게 그런 클래스들이 있을껄로 압니다..)

닷넷 라이브러리는..거의 VCL과 비슷한 것 같더군요..(그래서 C++보다 델파이를 먼저 시작한게 다행이다..라고 생각하고 있죠..--;)

생각해보시면..OOP에 맞게 디자인 하실려면..
클래스의 다중상속보다..
인터페이스의 다중상속이 더 좋은 거 같습니다.

그래서 C#에서 다중상속부분을 제거 한거 같기도 합니다.

예를 들어..

'한진우' 라는 인간의 인스턴스를 생각해봅시다.

'한진우'는
'생물'클래스를 상속받은 '인간'클래스의 인스턴스죠..

그런데..
'인간'클래스는 '움직인다', '먹는다'...등등 여러 인터페이스를 상속받고 있죠.
구현은..머..
'움직인다' --> '두발로 걸어다닌다'
'먹는다' --> '씹어 먹는다'

'생물' 클래스의 '뱀' 클래스를 봅시다
'뱀'클래스도 또한 '움직인다', '먹는다'의 인터페이스를 상속받고 있죠..
하지만 구현이 다릅니다.
'움직인다' --> '기어 다닌다.'
'먹는다' --> '삼켜 먹는다.'


고로..
'뱀'도 '움직인다'
'인간'도 '움직인다'
로 접근 가능하죠..^^;

말이 이상해졌네요^^;


클래스의 다중상속으로 위와 같이 구현할려면 어떻게 해야 하나요?
쫌더 복잡할껄요..

'움직이는 생물' 클래스, '먹는 생물' 클래스를 만들어서 다중 상속해야 겠죠..

어떤게 더 편하십니까?
어떤게 더 OOP에 맞다고 생각하십니까?

이게 요 며칠전에 배운 겁니다..^^

결론은요..
델파이에서는 인터페이스를 어렵게 다가가는 거 같습니다.
클래스와 같은 레벨로 인터페이스를 다루면..더 좋은 프로그램이 나올듯 합니다.

끝~~





박정모 님이 쓰신 글 :
:
:
: 왜 델파이는 다중 상속을 지원안하는 겁니까?
: 컴파일속도 좀 느려져도 괜찮은데, 문법이 까다로워져도 상관없는데,
: Pascal언어 확장팩으로 라도 좋으니까 제발 다중 상속좀 지원해줬으면...
:
: 정말 미치겠네요. 깊이 있는 클래스 설계할 때마다 부딪히는게 다중
: 상속입니다. 다중상속 지원안해서 해야하는 이 노가다의 버거움이여... ㅠ.ㅠ
: 서로 다른 클래스에 같은성질의 멤버함수 만들고 또 만들고~
:
: 박지훈씨... 박지훈씨 힘 있으니까 볼랜드에다가 제안좀 해주십시요.
: 언어 확장팩으로라도 다중상속 지원하게 해달라고.
:
: 다중상속을 위한 Pascal언어 확장팩이 나오면 100만원 한다고 해도
: 사서 쓰겠습니다.
:
: 그러지말고 C++ Builder 쓰라고요? 저도 C++ Builder쓰고 싶습니다. 그런데
: C++ Builder로 만들어 놓으면 아무래도 범용성이 떨어지니까... ㅠ.ㅠ
:
:

+ -

관련 글 리스트
6730 으아아아... 미치겠다. 델파이는 왜 ??!!?? 박정모 2196 2003/02/05
6765     인터페이스의 다중상속에 대해서.. 어린왕자A 3522 2003/02/08
6742     Re:으아아아... 미치겠다. 델파이는 왜 ??!!?? 박지훈.임프 2440 2003/02/06
6749         Re:Re: 아닙니다! 김백일.cedar 1788 2003/02/06
6756             Re:Re:Re: 두분의 말이 모두 맞는 말씀입니다. 그러나... 남병철.레조 1663 2003/02/07
6752             C++... 박지훈.임프 1887 2003/02/07
6754                 박정모의 의견 & 태클 입니다. 박정모 2637 2003/02/07
6763                     Re:다중상속.. ?? 김윤동.제라툴 2138 2003/02/08
6758                     Re: 우선은 ... ㅡㅡa h1800.영화 1368 2003/02/07
6755                     웬 태클입니까 박지훈.임프 1636 2003/02/07
6744         그렇습니까? ... ㅠ.ㅠa 박정모 1620 2003/02/06
6747             PS1,2에 대한 답변입니다. 김백일.cedar 1697 2003/02/06
6748                 class implementation 은 인터페이스의 구현을 지적한 말이었습니다. (냉무) 박정모 2124 2003/02/06
6750                     그러니까 인터페이스 상속이란, 인터페이스만 동일하고 구현은 별도로 해야 한다는 뜻이죠.(냉무) 김백일.cedar 3302 2003/02/06
6751                         interface상속은 구현이 반드시 제공되야 하며, interface는 객체의 메모리 매핑이기도 합니다.(냉무) 박정모 2208 2003/02/06
6739     Re:으아아아... 미치겠다. 델파이는 왜 ??!!?? 정재필 1855 2003/02/06
6732     다중상속이 안되어서 불편한게 어떤 것인가요 ? civilian 1882 2003/02/05
6745         Re:다중상속이 안되어서 불편한게 어떤 것인가요 ? 김백일.cedar 1566 2003/02/06
6746             Re:Re:다중상속이 안되어서 불편한게 어떤 것인가요 ? civilian 1872 2003/02/06
6737         예를 들어 드리려고 이것저것 찾아봤지만... ㅠ.ㅠ 박정모 1612 2003/02/05
6731     이럴땐 정말 C++ builder 쓰고 싶은 마음이 굴뚝 같습니다. 박정모 1729 2003/02/05
6734         궁금한게 있는데요 왜 C++ 빌더로 하면 범용성이 떨어지는지.. 박주현 1597 2003/02/05
6735             음~ 제가 말한 "범용성"이란... 박정모 2159 2003/02/05
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.