C/C++ 디자인 패턴 (20) — 전략(Strategy)
문단을 화면 폭에 맞춰 줄을 바꾸는 방법은 여러 가지다. 빠르고 단순한 탐욕 방식이 있고, 문단 전체를 보고 줄 끝 여백을 고르게 만드는 방식도 있다. 이 알고리즘을 문단 클래스 안에 if로…
문단을 화면 폭에 맞춰 줄을 바꾸는 방법은 여러 가지다. 빠르고 단순한 탐욕 방식이 있고, 문단 전체를 보고 줄 끝 여백을 고르게 만드는 방식도 있다. 이 알고리즘을 문단 클래스 안에 if로…
8편에서 만든 메뉴 시스템은 항목을 선택하면 command()가 불리는 데서 끝났다. 실제 프로그램에서는 "Save를 선택하면 문서를 저장한다"처럼 메뉴 항목과 애플리케이션의 동작을 연결해야 한다. 그런데 메뉴는 라이브러리 쪽 코드이고 문서는 애플리케이션 쪽…
입력창(LineEdit)은 키 입력을 받아 문자열을 만드는 흐름은 늘 같다. 반면 숫자만 받을지, 우편번호 5자리를 받을지 같은 검증 규칙은 쓰는 곳마다 다르다. 이렇게 변하지 않는 코드와 변하는 코드를 어떻게 나누느냐가 설계의…
std::sort에 비교 함수를 넘기는 방법은 여러 가지다. 함수 포인터, operator()를 가진 클래스, 람다(lambda), std::function 중 무엇을 넘기든 결과는 같다. 그런데 천만 개를 정렬해 보면 실행 시간은 2배 가까이 벌어진다. 차이는…