|
(광고) 단통법 시대의 인터넷가입 가이드(ver2.0) (234) |
백메가 |
2015-12 |
1763179 |
25 |
2015-12
1763179
1 백메가
|
|
[필독] 처음 오시는 분을 위한 안내 (737) |
정은준1 |
2014-05 |
5237476 |
0 |
2014-05
5237476
1 정은준1
|
66692 |
서버용 보드에 일반 파워로 이렇게 연결하면 정상작동 할 까요? (15) |
신우섭 |
2016-06 |
5824 |
0 |
2016-06
5824
1 신우섭
|
66691 |
msata to zif 젠더 질문.. (4) |
이건희 |
2016-06 |
5297 |
0 |
2016-06
5297
1 이건희
|
66690 |
인터넷 전용회선 요금? (20) |
yanku |
2016-06 |
15745 |
0 |
2016-06
15745
1 yanku
|
66689 |
HDD 빈 공간 유지 (12) |
Christopher |
2016-06 |
6110 |
1 |
2016-06
6110
1 Christopher
|
66688 |
iMac 키보드 마우스 어떤 것을 써야 하나요? (11) |
회원K |
2016-06 |
5876 |
0 |
2016-06
5876
1 회원K
|
66687 |
AMD HD4XXX Windows10(64bit)드라이버 (4) |
퍼싱글 |
2016-06 |
6174 |
0 |
2016-06
6174
1 퍼싱글
|
66686 |
NC364T 티밍 ~ (4) |
yanku |
2016-06 |
4474 |
0 |
2016-06
4474
1 yanku
|
66685 |
[재질문] VMWARE WORKSTATION 12 에서 네트워크 카드 인식문제 VMWARE 고수님 봐… (5) |
Noman |
2016-06 |
7235 |
0 |
2016-06
7235
1 Noman
|
66684 |
[재질문] VMWARE WORKSTATION 12 에서 네트워크 카드 인식문제 VMWARE 고수님 봐… (1) |
DoubleSH |
2016-06 |
4218 |
0 |
2016-06
4218
1 DoubleSH
|
66683 |
쩝 771개조하다가 핀하나가 날라간것 같은데.. 이핀이 중요핀 인가요???ㅠㅠ (4) |
늘파란 |
2016-06 |
4704 |
0 |
2016-06
4704
1 늘파란
|
66682 |
델 노트북 배터리 충전 횟수 확인 방법이 있을까요? (2) |
회로쟁이 |
2016-06 |
6530 |
0 |
2016-06
6530
1 회로쟁이
|
66681 |
hp ml10 NHP에서 하드 어떻게 끼우나요? (3) |
회원K |
2016-06 |
4553 |
0 |
2016-06
4553
1 회원K
|
66680 |
윈도우 10에서 핫플러깅 (3) |
Sunrise |
2016-06 |
5261 |
0 |
2016-06
5261
1 Sunrise
|
66679 |
스카이레이크 보드 궁금한점이있습니다. (5) |
하나룸 |
2016-06 |
4958 |
1 |
2016-06
4958
1 하나룸
|
66678 |
원격으로 컴퓨터를 껐다 켰다 할수 있는 방법이 있을까요? (11) |
정은준1 |
2016-06 |
19087 |
1 |
2016-06
19087
1 정은준1
|
66677 |
DP 케이블 불량일까요? (7) |
만곰이 |
2016-06 |
8726 |
0 |
2016-06
8726
1 만곰이
|
66676 |
가정용전기 -> 일반용전기 (5) |
Lucyed |
2016-06 |
7570 |
0 |
2016-06
7570
1 Lucyed
|
66675 |
부트로더용 USB 추천... (4) |
izegtob |
2016-06 |
4989 |
0 |
2016-06
4989
1 izegtob
|
66674 |
usb 타입의 적외선 수신기를 하나 가져왔는데요...기타장치에 노란느낌표로 ehome In… (1) |
김건우 |
2016-06 |
6121 |
0 |
2016-06
6121
1 김건우
|
66673 |
이 컴퓨터에는 인증기관 서비스가 설치되어있습니다. 컴퓨터 이름을 변경하려면 서비… |
김건우 |
2016-06 |
5225 |
0 |
2016-06
5225
1 김건우
|
그냥 인터페이스는 일종의 규격을 표시한 문서 같은 것 같습니다.
이 규격에 구현까지 넣어버리게 되면 이 규격을 사용하는 다른 사람들이 싫어할 것이고.
구현을 넣고 싶으면 인터페이스를 상속받아서 클래스를 만들어 구현을 하라... 뭐.. 이정도 개념이 아닌가 싶습니다.
혼자서 다 짤것이면 그냥 클래스로 하면 되지만
여러명이 작업을 하거나 나중에라도 누군가 이를 바탕으로 다른 것을 만들어야 한다면 표준화된 인터페이스를 제공하는 것이 더 낫다고 생각해서 만든 것이 아닐까요?
p.s. 저는 인터페이스란 말을 object-c 할 때 처음 봤었는데 재미있었습니다.
https://ko.wikipedia.org/wiki/%EC%98%A4%EB%B8%8C%EC%A0%9D%ED%8B%B0%EB%B8%8C-C
링크 내용도 한번 읽어보세요.
제가 예제로 풀었던 문제는 입력된 데이터를 출력하는 문제였습니다.
하나는 "콘솔" 하나는 "TXT" 파일
만약에 누가 추가로 "엑셀"에 파일을 출력한다고 할때
인터 페이스가 있음 규격이 비슷해서 더 찾기 쉬워서 라고 생각하면 될까요?
답변 감사합니다
예를 들어...IOutput 이라는 인터페이스에 Print 라는 메소드를 선언했다고 가정하고..
CConsole, CTextFile 두개의 클래스가 각각 IOutput 을 상속받도록 정의한 후...
Print 메소드에 CConsole 은 콘솔로 아웃풋하는 걸 구현하고...CTextFile 은 TextFile 에 저장하는 걸 구현하면...
Console 로 출력하든 TextFile 로 출력하든...출력부분은 수정할 필요가 없어지고 출력을 어디로 하는지는 상관이 없어집니다.
IOutput outputMethod = new CConsole(); // 혹은 new CTextFile();
outputMethod.Print(); // Print 하는 그 시점에는 outputMethod 가 어떤 클래스이던 신경쓸 필요가 없어짐.
실제 코딩 상황에서는...
CConsole 일지 CTextFile 일지는 출력하는 부분이 아닌 외부에서 지정해주고 코드 상에서는 외부에서 지정된 방식으로 출력하게끔 한다던디...
혹은...외부에서 아예 IOutput 에 해당하는 클래스의 인스턴스를 생성해서 넘겨주고...그걸 받아서 IOutput.Print 만 호출하는 방식으로 처리되게끔 합니다.
위의 예에서 엑셀에 출력하는 걸 추가한다면...
IOutput 을 상속받는 CExcel 을 만들어서...대체해주면 됩니다.
즉...출력하는 사람은 그게 어디로 출력되던지...동일한 (통일된) 형태의 호출방식을 유지할 수 있으므로 코드의 일관성을 가져갈 수 있습니다.
이거 글로 쓰려니 글재주가 모자라서 상당히 어렵네요. ㅠㅠ;;
제가 휴가라.. 답글을 늦게 달았네요
답변감사합니다~
C#에서 클래스는 다중상속이 되지 않습니다.
인터페이스로 구현하고 파생클래스에서 다중상속해서 구현하여 사용합니다.
그리고 다른 개발팀과 협업을 할때 인터페이스로 구현을 해서 클래스의 형태를 1차적으로
고정시키고 개발할때도 사용합니다.
사실 여러사람이 짜면 짜는 사람의 특성 때문에 설계를 해도 나중에는 서로 다르게
구현을 합니다.
최상위 인터페이스를 구현하고 이를 상속받게해서 구현을 하면 큰 틀이 유지되기 때문에
코드의 통일성도 있고 그렇습니다.
제가 휴가라 답글을 늦게 달았네요
서로다른 것들을 연결시키는 의미입니다. (라고 해석하면 편하죠..)
Network interface = UTP선의 끝에 RJ45 잭을 꼽아 받아들이는 장치...
인터체인지는 다른 도로들을 연결하고... 인터페이스는 서로 다른 규격들을 연동하고...