유돌이

calendar

1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31

Notice

2009. 2. 9. 21:39 C/C++/MFC
[인터페이스]

인터페이스란, 좁은 의의 인터페이스로

순수가상함수만을 갖는 클래스를 말합니다.

넓은 의미의 인터페이스란, 앞으로 프로그램을 어떻게 짤것인지,

클래스는 어떤 구조를 갖도록 설계할 것인지를 위한 약속이라고 보시면 됩니다.

 

[COM 이란?]

아래 보이는 그림이 바로 COM객체의 구조이다.

-WGPD에도 이와 동일한 그림이 첨부되있다.

사실 여러가지 설명이 있지만 개인적으로 보기엔 이 그림만으로 충분하다고 보기에

이것만 넣었고 다른 설명의 그림도 COM을 이해하는데 도움이 되지만 귀찮다 솔직히 ㅡㅡ;

 

 

 

 

흠...단순히 위의 그림을 설명하자면 'COM 객체'라는 커다란 사각형이 있고

작은 사각형 2개가 이 안에 포함돼 있다.이 사각형은 Interface A와 Interface B이고

각각 사각형은 입력과 출력이 존재한다.

즉 정리하자면 COM객체 안은 Interface들이 있고 각 Interface안에는 입력과 출력이 있으면

함수들(method)이 존재한다. 이게 COM이란다. 

참고로 인터페이스는 그냥 일련의 함수가 집합된C++에서의 Class라고 보면 된다.

이처럼 보통 COM객체는 하나 이상의 Interface를 포함한다.

-내 생각으론 입문자 입장에서 저 그림이상의 것은 아직까진 필요없다고 본다.

 

 

그러면 DirectX 또한 COM객체이므로 이런 구조를 갖는 것은 자명하다. 

또 같은 그림을 그리기 귀찮으니

Interface A는 DirectDraw를, Interface B는 DirectSound를 대입.뭐 이런식으로 보면 된다.

염두 해야 될점은 Interface는 내부의 또 다른 Interface를 갖을 수 있다는 점인데

이는 DirectDraw에 관한 chapter에서 언급하기로 한다.


posted by 유돌이