윤찬식 강사
chansigi@ioacademy.co.kr
C++ Design Patter
: GoF Design Pattern 23가지
C++ idioms
C++ 11/14
Visual Studio 2015 : C++ 14 표준까지 사용 가능함
2013 : C++ 11
2010 : C++ 11 일부만 사용 가능함
Compile : Ctrl + F7
Compile + Run : Ctrl + F5
+ 객체 지향 원칙
- OCP : 개방 폐쇄 원칙
- 미리 변화를 예상하고 패턴 미리 적용, 변화 예상되지 않으면 최대한 간단히 코딩하고 리팩토링을 통해서 패턴 적용
1.디자인 패턴 결론
: 우리의 다지안 패턴은 리팩토링의 결과로 나온 구조를 반영한다.
디자인 패넡은 리팩토링의 목표점이 된다.
2.리팩토링 서문
: 패턴과 리팩토링의 사이에는 자연스러운 관계가 있다.
패턴은 도달하고 싶은 곳이고, 리팩토링은 그곳으로 가는 방법이다.
+ 객체지향 5대 원칙 (SOLID) - 로버트 C 마틴
1.SRP(단일 책임 원칙)
- 모듈은 단 하나만의 책임을 가져야 한다.
2.OCP(개방 폐쇄 원칙)
- 모듈은 수정에는 닫혀 있고, 확장에는 열려 있어야 한다.
3.LSP(리스코프 치환 원칙)
- 자식 클래스는 부모 클래스로 대체 가능해야 한다.
- 자식의 공통된 기능은 부모 클래스로부터 와야 한다.
4.ISP(인터페이스 분리 원칙) - 인터페이스 단일 책임의 원칙
- 범용 인터페이스보다는 세분화된 인터페이스가 낫다.
5.DIP(의존 관계 역정 원칙)
- 클라이언트는 구체 클래스에 의존하는 것이 아니라 인터페이스나 추상 클래스에 의존해야 한다.
- 인터페이스나 추상 클래스에 의존해야 한다.
안드로이드 binder/IInterface (https://android.googlesource.com/platform/frameworks/native/+/android-6.0.0_r5/libs/binder/IInterface.cpp)
return this ? onAsBinder() : NULL;
컴파일러
- clang++ (LLVM 기반 컴파일러) : 표준에 민감, 언어 독립적 그러나 성능에 안좋음
크로미엄도 점차 g++ 에서 clang++ 옮기는 추세(현재는 성능에 문제 없음)
애플에서 주도하고 있음
+ 5_접근변경자2.cpp : 어댑터 패턴
void draw() override
-> c++ 11/14에 새롭게 추가됨
'ⓟrogramming > Design Pattern' 카테고리의 다른 글
[아임구루] Design Pattern 3일차 (0) | 2016.02.17 |
---|---|
[아임구루] Design Patter 2일차 (0) | 2016.02.16 |
Decorator(데코레이터) pattern (0) | 2011.02.28 |
Command(커멘드) Pattern (0) | 2011.02.28 |
스테이트 패턴(State Pattern) (0) | 2011.02.24 |