SlideShare a Scribd company logo
1 of 20
GPG 2. Section 1. General Programming Programming with           Abstract Interface DevRookie Study, 2011. 7. 2. Hebory
Abstract Interface 추상 인터페이스
C++에서의 추상 인터페이스란? 오직 public 순수 가상 함수들만을 가지는 기반 클래스
추상 인터페이스를 왜 사용해야 하는가?
어떤 이점이 있을까? 인터페이스와 구현의 분리 Interface and Implementation
게임의 나머지 부분에 영향을 미치지 않고도 서로 다른 구현 코드들을 전환할 수 있다.
구현들을 실행 시점에서 바꿀 수 있다.
구현의 세부 사항이 인터페이스의 사용자로부터 오나전 은폐된다.
기존 인터페이스에 대한 새 구현들을 게임에 추가하는 것이 용이하며, 심지어 게임을 컴파일하고 빌드 한 후에 새 구현을 추가하는 것도 가능하다.
C++의 추상 인터페이스는 항상 가상 소멸자를 가져야 한다.
Abstract Factory Pattern 추상 팩토리 패턴 추상 인터페이스가 응용된 한가지 예
하나의 인터페이스에 대한 특정 구현을 요청에 따라 인스턴스화 하는 것이 유일한 목적인 클래스이다.
추상 인터페이스의 단점 Abstract Interface
설계가 좀 더 복잡해진다. 디버깅이 어려워 질 수 있다. 상속을 통해 추상 인터페이스를 확장하는 것이 불가능 하다. 호출에 대한 Overhead가 존재한다.
Abstract Class C#의 추상 클래스와 인터페이스 And Interface
Abstract Class and Interface 추상클래스와 인터페이스의공통점
스스로 객체를 생성할 수 없다. Upcasting이 가능하다. 모든 추상 멤버를 구현해야 한다. 인터페이스를 상속할 수 있다.
Abstract Class and Interface 추상클래스와 인터페이스의차이점
선언하는 키워드가 다르다. C#에서 다중 상속은 인터페이스만 가능하다. 추상 클래스는 추상 메서드를 선택적으로 가지고, 인터페이스의 메서드는전부 추상이다. 인터페이스는 필드, 상수, 내부 타입, 생성자, 연산자를 포함할 수 없다.
인터페이스는 액세스  지정자를 붙이지 않으며 생략해도 항상 public이다. 인터페이스는 추상, 정적,  가상, 재정의, 봉인 등의 지정자도 붙일 수 없다.

More Related Content

Similar to [11 0702] 추상 인터페이스를 이용한 프로그래밍

Ndc2010 김주복, v3. 마비노기2아키텍처리뷰
Ndc2010   김주복, v3. 마비노기2아키텍처리뷰Ndc2010   김주복, v3. 마비노기2아키텍처리뷰
Ndc2010 김주복, v3. 마비노기2아키텍처리뷰Jubok Kim
 
[0326 박민근] udk 소개 입문
[0326 박민근] udk 소개 입문[0326 박민근] udk 소개 입문
[0326 박민근] udk 소개 입문MinGeun Park
 
C++ GUI 라이브러리 소개: Qt & Nana
C++ GUI 라이브러리 소개: Qt & NanaC++ GUI 라이브러리 소개: Qt & Nana
C++ GUI 라이브러리 소개: Qt & NanaLazy Ahasil
 
아마존 게임엔진:Lumberyard :: Patel Pratik :: Gaming on AWS 2016
아마존 게임엔진:Lumberyard :: Patel Pratik :: Gaming on AWS 2016아마존 게임엔진:Lumberyard :: Patel Pratik :: Gaming on AWS 2016
아마존 게임엔진:Lumberyard :: Patel Pratik :: Gaming on AWS 2016Amazon Web Services Korea
 
Ndc2013 정리(upload버전)
Ndc2013 정리(upload버전)Ndc2013 정리(upload버전)
Ndc2013 정리(upload버전)Minsu Park
 
ifcpp build guide
ifcpp build guideifcpp build guide
ifcpp build guideJUNHEEKIM27
 
마이크로 프론트엔드 아키텍쳐를 위한 모노레포 관리
마이크로 프론트엔드 아키텍쳐를 위한 모노레포 관리마이크로 프론트엔드 아키텍쳐를 위한 모노레포 관리
마이크로 프론트엔드 아키텍쳐를 위한 모노레포 관리경식 최
 

Similar to [11 0702] 추상 인터페이스를 이용한 프로그래밍 (9)

Ndc2010 김주복, v3. 마비노기2아키텍처리뷰
Ndc2010   김주복, v3. 마비노기2아키텍처리뷰Ndc2010   김주복, v3. 마비노기2아키텍처리뷰
Ndc2010 김주복, v3. 마비노기2아키텍처리뷰
 
Bridge
BridgeBridge
Bridge
 
[0326 박민근] udk 소개 입문
[0326 박민근] udk 소개 입문[0326 박민근] udk 소개 입문
[0326 박민근] udk 소개 입문
 
C++ GUI 라이브러리 소개: Qt & Nana
C++ GUI 라이브러리 소개: Qt & NanaC++ GUI 라이브러리 소개: Qt & Nana
C++ GUI 라이브러리 소개: Qt & Nana
 
2015.07.01
2015.07.012015.07.01
2015.07.01
 
아마존 게임엔진:Lumberyard :: Patel Pratik :: Gaming on AWS 2016
아마존 게임엔진:Lumberyard :: Patel Pratik :: Gaming on AWS 2016아마존 게임엔진:Lumberyard :: Patel Pratik :: Gaming on AWS 2016
아마존 게임엔진:Lumberyard :: Patel Pratik :: Gaming on AWS 2016
 
Ndc2013 정리(upload버전)
Ndc2013 정리(upload버전)Ndc2013 정리(upload버전)
Ndc2013 정리(upload버전)
 
ifcpp build guide
ifcpp build guideifcpp build guide
ifcpp build guide
 
마이크로 프론트엔드 아키텍쳐를 위한 모노레포 관리
마이크로 프론트엔드 아키텍쳐를 위한 모노레포 관리마이크로 프론트엔드 아키텍쳐를 위한 모노레포 관리
마이크로 프론트엔드 아키텍쳐를 위한 모노레포 관리
 

More from SeungMin Yang

[12 0324] 빛과 그림자
[12 0324] 빛과 그림자[12 0324] 빛과 그림자
[12 0324] 빛과 그림자SeungMin Yang
 
[12 0210] gpg 2.3.7 전략적 판단 기법
[12 0210] gpg 2.3.7 전략적 판단 기법[12 0210] gpg 2.3.7 전략적 판단 기법
[12 0210] gpg 2.3.7 전략적 판단 기법SeungMin Yang
 
[12 0114] 비실사 렌더링 기법
[12 0114] 비실사 렌더링 기법[12 0114] 비실사 렌더링 기법
[12 0114] 비실사 렌더링 기법SeungMin Yang
 
[11 0212] 정렬, 선택, 탐색 알고리즘
[11 0212] 정렬, 선택, 탐색 알고리즘[11 0212] 정렬, 선택, 탐색 알고리즘
[11 0212] 정렬, 선택, 탐색 알고리즘SeungMin Yang
 
[11 0730] gpg 2.1.11 게임에 내장되는 프로파일링 모듈(공개)
[11 0730] gpg 2.1.11 게임에 내장되는 프로파일링 모듈(공개)[11 0730] gpg 2.1.11 게임에 내장되는 프로파일링 모듈(공개)
[11 0730] gpg 2.1.11 게임에 내장되는 프로파일링 모듈(공개)SeungMin Yang
 
[11 0723] gpg 2.1.9 c++를 위한 폐기 매커니즘 구현(공개)
[11 0723] gpg 2.1.9 c++를 위한 폐기 매커니즘 구현(공개)[11 0723] gpg 2.1.9 c++를 위한 폐기 매커니즘 구현(공개)
[11 0723] gpg 2.1.9 c++를 위한 폐기 매커니즘 구현(공개)SeungMin Yang
 
[11 0702] 스마트 하지 못한 개발자의 스마트폰 게임 개발 하기(공개용)
[11 0702] 스마트 하지 못한 개발자의 스마트폰 게임 개발 하기(공개용)[11 0702] 스마트 하지 못한 개발자의 스마트폰 게임 개발 하기(공개용)
[11 0702] 스마트 하지 못한 개발자의 스마트폰 게임 개발 하기(공개용)SeungMin Yang
 
내 마음대로 정리 해 본 ndc 발표 자료
내 마음대로 정리 해 본 ndc 발표 자료내 마음대로 정리 해 본 ndc 발표 자료
내 마음대로 정리 해 본 ndc 발표 자료SeungMin Yang
 
알고리즘 스터디 NP-완비
알고리즘 스터디 NP-완비알고리즘 스터디 NP-완비
알고리즘 스터디 NP-완비SeungMin Yang
 
[Gpg1권] 5.3 정점 색상 보간을 이용한 모의 실시간 조명
[Gpg1권] 5.3 정점 색상 보간을 이용한 모의 실시간 조명[Gpg1권] 5.3 정점 색상 보간을 이용한 모의 실시간 조명
[Gpg1권] 5.3 정점 색상 보간을 이용한 모의 실시간 조명SeungMin Yang
 
그래프 알고리즘
그래프 알고리즘그래프 알고리즘
그래프 알고리즘SeungMin Yang
 

More from SeungMin Yang (12)

[12 0324] 빛과 그림자
[12 0324] 빛과 그림자[12 0324] 빛과 그림자
[12 0324] 빛과 그림자
 
[12 0210] gpg 2.3.7 전략적 판단 기법
[12 0210] gpg 2.3.7 전략적 판단 기법[12 0210] gpg 2.3.7 전략적 판단 기법
[12 0210] gpg 2.3.7 전략적 판단 기법
 
[12 0114] 비실사 렌더링 기법
[12 0114] 비실사 렌더링 기법[12 0114] 비실사 렌더링 기법
[12 0114] 비실사 렌더링 기법
 
[11 0212] 정렬, 선택, 탐색 알고리즘
[11 0212] 정렬, 선택, 탐색 알고리즘[11 0212] 정렬, 선택, 탐색 알고리즘
[11 0212] 정렬, 선택, 탐색 알고리즘
 
[11 0730] gpg 2.1.11 게임에 내장되는 프로파일링 모듈(공개)
[11 0730] gpg 2.1.11 게임에 내장되는 프로파일링 모듈(공개)[11 0730] gpg 2.1.11 게임에 내장되는 프로파일링 모듈(공개)
[11 0730] gpg 2.1.11 게임에 내장되는 프로파일링 모듈(공개)
 
[11 0723] gpg 2.1.9 c++를 위한 폐기 매커니즘 구현(공개)
[11 0723] gpg 2.1.9 c++를 위한 폐기 매커니즘 구현(공개)[11 0723] gpg 2.1.9 c++를 위한 폐기 매커니즘 구현(공개)
[11 0723] gpg 2.1.9 c++를 위한 폐기 매커니즘 구현(공개)
 
[11 0702] 스마트 하지 못한 개발자의 스마트폰 게임 개발 하기(공개용)
[11 0702] 스마트 하지 못한 개발자의 스마트폰 게임 개발 하기(공개용)[11 0702] 스마트 하지 못한 개발자의 스마트폰 게임 개발 하기(공개용)
[11 0702] 스마트 하지 못한 개발자의 스마트폰 게임 개발 하기(공개용)
 
내 마음대로 정리 해 본 ndc 발표 자료
내 마음대로 정리 해 본 ndc 발표 자료내 마음대로 정리 해 본 ndc 발표 자료
내 마음대로 정리 해 본 ndc 발표 자료
 
알고리즘 스터디 NP-완비
알고리즘 스터디 NP-완비알고리즘 스터디 NP-완비
알고리즘 스터디 NP-완비
 
[Gpg1권] 5.3 정점 색상 보간을 이용한 모의 실시간 조명
[Gpg1권] 5.3 정점 색상 보간을 이용한 모의 실시간 조명[Gpg1권] 5.3 정점 색상 보간을 이용한 모의 실시간 조명
[Gpg1권] 5.3 정점 색상 보간을 이용한 모의 실시간 조명
 
그래프 알고리즘
그래프 알고리즘그래프 알고리즘
그래프 알고리즘
 
GPG 1권 4.12 VIPM
GPG 1권 4.12 VIPMGPG 1권 4.12 VIPM
GPG 1권 4.12 VIPM
 

[11 0702] 추상 인터페이스를 이용한 프로그래밍