2010년 5월 16일 일요일

interface를 사용하는 이유..

 

첫번째는 일종의 규칙만들기 입니다.

 

사람이기때문에 코딩을 하다가 실수를 할 수 있습니다.

 

이를 미연에 방지하는 방법이 인터페이스를 사용하는것입니다.

 

코드 길이가 짧다면 상관 없겠지만

 

헷갈릴 정도로 길다면 분명 실수 할 가능성이 있습니다.

 

하지만 인터페이스를 사용하면 규칙이 생깁니다.

 

인터페이스를 상속받은 클래스는

 

인터페이스 내부에 정의된 형식이 반드시 구현되어야 합니다.

 

만약 개발자가 혹시나 깜빡하고 빠뜨리고 구현을 하지 않는다면

 

디버깅시 바로 예외를 발생시켜 빠뜨린 부분을 마저 작성하라고 알려줍니다.

 

 

 

두번째는 다중상속 때문입니다.

 

C# 은 기본적으로 다중상속을 지원하지 않습니다.

 

하지만 다중상속이 꼭 필요한 상황도 있기때문에 인터페이스를 이용해 다중상속을 활용할 수 있습니다.

 

다중 상속을 정의하는 방법은 아직 잘 모르시는 부분이라면

 

스스로 공부를 더 해보시는것이 도움이 되실거라 생각합니다.

 

===================================================================================

 

인터페이스는 프레임워크의 노출점을 의미합니다.

 

유저 인터페이스라는 말이 있듯이 "인터페이스"란 겉에 보여지는 부분을 말하는건데 프레임워크에서의 노출점을 의미하므로 클라이언트(프레임워크를 참조하는 프레젠데이션 레이어) 가 바라봤을때 인터페이스가 보이게 되고 인터페이스를 통해서 프레임워크 내부로 접근할 수 있는거지요

 

이렇게 접근을 시키는 이유는 내부 핵심 구상 클래스들에 대한 은닉과 변화무쌍한 환경에 대한 대처 차원이라고 볼 수 있겠네요.

 

 

인터페이스는 특정 기능을 구현하도록 강요합니다.

 

예를 들어  소나타, 티코, 겔로퍼   라는 클래스들이 있다고 했을 때 이 구상클래스들은 ICar 라는 인터페이스를 구현하도록 하시면 모든 자동차들이 있어야할 기능들을 정의해놓을 수 있습니다.

 

 이렇게 하는 또하나의 이유는 위애서 설명했듯이 각각의 구상 클래스들을 직접 호출하는것이 아니고 ICar 인터페이스를 통해 클라이언트로 하여금 접근을 허락하기 위함입니다.

 

 

 규칙을 정하기 위한다는 건 표면적인 이유이고 C++에서 지원하는 다중상속을 위함은 더더욱 아닙니다. 인터페이스에는 상속이라는 단어를 사용하지 않습니다.

 

 

※ 제 설명에 틀린 점이 충분히 있을 수 있으니 70%만 참고하시고 더욱 연구하시기 바랍니다. ^^;; 참고로 패턴을 공부하시면 인터페이스가 눈에 들어오실겁니다. ~

Command_pattern

 

 

 

 

댓글 없음:

댓글 쓰기