디자인 패턴
-
스마트 포인터디자인 패턴 2009. 5. 25. 21:35
핸들 클래스 이디엄 스마트 포인터 자원에 대한 초기화 파일 자원 락 동적 할당 메모리(배열) 메모리 할당 객체 참조 카운팅으로 자동으로 삭제 복사 생성자와 대입 연산자를 작성하지 않아도 되게 해준다. 복사에 의한 오버헤드가 거의 없다. 임시 메모리 개체에 대한 걱정을 덜어주고, 코드의 가독성을 상당히 향상시킨다. #include "allocTmpl.h" typedef unsigned char Pel8; apAlloc pixels_; // Pixel data pixels_ = apAlloc (width*height); RAII 자원 획득은 초기화 스택 리와인드 시 소멸자에 의해서 자원 해제가 자동으로 이루어진다. 생성자가 호출되면서 예외가 발생하는 경우에는 그 객체에 대한 소멸자가 호출되지 않는다. std..
-
디자인 패턴(클래스 설계 기법)디자인 패턴 2009. 2. 28. 18:10
* Design PrinciplesOpen Close Principle 의존성 뒤집기 원칙(Dependency Inversion Principle)어떤 변수에도 구상 클래스에 대한 레퍼런스를 저장하지 말고, 구상 클래스에 유도된 클래스를 만들지 말며, 베이스 클래스에 이미 구현되어 있던 메소드를 오버라이드하지 말아야 한다 Interface Segregation Principle Single Responsibility Principle Liskov's Substitution Principle 인터페이스 상속의 목적은 동적 다형성 템플릿은 정적 다형성 코드 재사용을 위해서는 구현 상속 보다는 합성(composition?)을 사용하자. // ??? 중복(?) 상속의 위험성이 없는 한 다중 상속은 전혀 거리낄 ..