C++ 예제로 배우는 소프트웨어 설계 기법 (7) — 템플릿 인자로 전달하는 정책(Template Strategy)
6편에서는 변하는 정책을 가상 함수나 인터페이스 객체로 분리했다. 그런데 단일 스레드에서만 쓰는 리스트도 동기화 정책을 가상 함수로 받으면, 아무 일도 하지 않는 lock()을 매번 간접 호출하는 비용을 낸다. 정책을 실행…
6편에서는 변하는 정책을 가상 함수나 인터페이스 객체로 분리했다. 그런데 단일 스레드에서만 쓰는 리스트도 동기화 정책을 가상 함수로 받으면, 아무 일도 하지 않는 lock()을 매번 간접 호출하는 비용을 낸다. 정책을 실행…
public 상속은 "파생 클래스는 기반 클래스의 일종이다(is-a)"를 뜻해서, 파생 객체를 기반 참조로 넘길 수 있고 기반의 public 인터페이스가 그대로 노출된다. private 상속은 의미가 다르다. 기반 클래스의 구현을 가져다 쓰지만 외부에는…