1. 템플릿 메소드 패턴오늘 포스팅하는 템플릿 메소드 패턴은 우리가 모르게 정말 많이 사용하고 있는 패턴입니다. 1) 정의메소드에서 알고리즘의 골격을 정의하는 패턴. 알고리즘의 여러 단계 중 일부는 서브 클래스에서 구현할 수 있다. 템플릿 메소드를 이용하면 알고리즘의 구조는 그대로 유지하면서 서브 클래스에서 특정 단계를 재정의할 수 있다. (출처 : 헤드퍼스트 디자인 패턴) 간단하게 말하면 알고리즘의 틀(Template)을 만들기 위한 것입니다.전체 틀은 동일하고, 바뀌는 부분만 서브클래스에서 재정의해준다면, 실제로 코드의 중복을 크게 줄일 수 있을 겁니다.이 템플릿 메소드 패턴의 가장 흔하고 간단한 예는, std::sort의 compare 함수입니다. sort를 기본 틀이 아닌 원하는 기준으로 하고 싶..
1. 퍼사드 패턴이란?클래스 라이브러리 같은 어떤 소프트웨어의 다른 커다란 코드 부분에 대한 간략화된 인터페이스를 제공하는 객체. (출처 : 위키백과) 일련의 사용 방법이 복잡한 클래스들을 묶어 단순화된 인터페이스를 구현해서 사용하기 쉽게 만들 수 있는 패턴입니다.실제로 구현을 해 놓은 것을 보면 확인할 수 있겠지만, 매우 단순한 패턴입니다. 하지만, 이 퍼사드 패턴의 특징으로 인해 서브시스템의 연결성이 줄어들 수 있고, 최소지식원칙을 지키는데 큰 도움이 됩니다.그림으로 보면 매우 쉽게 퍼사드 패턴에 대해 이해할 수 있습니다.복잡한 서브시스템 클래스를 퍼사드 클래스가 묶어 가지고 있어 클라이언트 쪽에서는 서브시스템들의 복잡한 동작을 생각할 필요 없이 퍼사드 클래스에 명령만 하면 원하는 동작을 실행시킬 수..
오늘은 어댑터패턴에 대해 포스팅 하겠습니다. 1. Adapter Pattern 이란?어댑터 패턴(Adapter Pattern)은 클래스의 인터페이스를 사용자가 기대하는 다른 인터페이스로 변환하는 패턴이로, 호환성이 없는 인터페이스 때문에 함께 동작할 수 없는 클래스들이 함께 작동하도록 해 준다 (출처 : 위키백과) 간단하게 예를 들자면, 어댑터패턴은 돼지코입니다. 한국의 전자기기를 외국에서 사용해야 합니다. 물론 같은 국가도 있겠지만, 분명 전원 소켓이 다른 국가가 있고 여기에서 한국에 표준화된 전가기기를 사용하려면 반드시 돼지코가 있어야 합니다. 어댑터 패턴도 동일합니다. 기존에 사용하던 클래스가 있습니다. 고객이 제공한 클래스를 무조건 사용해야 한다고 요구를 받았을 때, 기존 클래스와 고객사에서 제공..
오늘은 커맨드 패턴에 대해 포스팅 하겠습니다. 1. Command 패턴이란?커맨드 패턴(Command pattern)이란 요청을 객체의 형태로 캡슐화하여 사용자가 보낸 요청을 나중에 이용할 수 있도록 매서드 이름, 매개변수 등 요청에 필요한 정보를 저장 또는 로깅, 취소할 수 있게 하는 패턴이다.- 출처 : 위키백과 command : 명령, 지휘라는 뜻을 가지고 있는 단어 입니다. 항상 디자인 패턴을 배울 때 마다 보는 단어가 캡슐화입니다. 매번 달라지는 부분을 클래스로 엮는데, 이번엔 요청(Command)이 바뀌어서 이 부분을 분리를 하는 패턴입니다.커맨드 패턴의 예시에 대해 먼저 이야기 해 보도록 하겠습니다. 고객사에게 리모컨의 API 디자인을 의뢰받았습니다. 각 버튼은 집 안의 선풍기, 에어컨, 거..
오늘은 싱글톤 패턴에 대해 소개해보려고 합니다.제가 제일 처음 접한 디자인패턴이라, 여러모로 특별한 의미를 가지는 디자인 패턴이고, 제가 생각하기엔, 가장 많이 활용되는 디자인패턴이 아닌가 싶습니다. 1. 싱글톤 패턴이란? Single, 즉, 단 하나밖에 없는 인스턴스입니다.특징은 생성자가 여러번 호출 되도 결국 이 인스턴스는 전체를 통틀어 단 하나밖에 없는 것이 특징입니다. 예를 들자면, 한 프로그램 통틀어서 필요한 기본설정 정보는 굳이 여러 개일 필요가 없습니다. 설정정보는 하나만 가지고 있고, 설정이 필요한 곳에서 설정 정보를 이 싱글톤으로 받아 쓰게 구현 하면, 중복을 줄일 수 있습니다.이 디자인의 특징적인 면은, 처음부터 전체 코드에 통틀어 한 객체 밖에 못 만들게 설계 되어 있다는 점에 있습니..
오늘은 두 번째 디자인 패턴인 옵저버패턴에 대해 포스팅 하려고 합니다. 1. 옵저버 패턴이란, 옵서버 패턴(observer pattern)은 객체의 상태 변화를 관찰하는 관찰자들, 즉 옵저버들의 목록을 객체에 등록하여 상태 변화가 있을 때마다 메서드 등을 통해 객체가 직접 목록의 각 옵저버에게 통지하도록 하는 디자인 패턴이다. 주로 분산 이벤트 핸들링 시스템을 구현하는 데 사용된다. 발행/구독 모델로 알려져 있기도 하다. - 출처 : 위키백과 간단하게 이야기 하면, 어떤 객체의 상태가 변하게 되면, 변한 객체가 그 밑의 관찰자들에게 변했다는 것을 알리는 디자인 패턴의 일종입니다. 헤드퍼스트 책의 예제를 활용하여 (동일하진 않고, 간결한 설명하기 위해 케이스를 줄였습니다) 옵저버패턴을 설명해 보겠습니다. ..
안녕하세요, 제이입니다. 오늘은 디자인 패턴의 일종인 Strategy Pattern에 대해 정리 해 보겠습니다. 모든 Design Pattern 관련 포스팅은 아래 서적을 활용하여 직접 구현한 내용입니다. 정말 볼 때마다 초등학교 영어학원 서적을 생각나게 하는 디자인과 구성이 인상적인 헤드퍼스트 시리즈의 책을 활용하였습니다. 해당 서적은 JAVA로 구현되어 있지만, 저는 C++로 구현해 볼 예정입니다. 많이 부족한 개발자라, 언제나 지적은 환영합니다. 1. Strategy Pattern 간단하게 말해서 실행 중에 알고리즘을 고를 수 있는 패턴입니다. 가령 오리라는 객체가 있다고 합시다. 오리가 할 수 있는 일 1. 수영하기 2. 꽥꽥 울기 3. 뒤뚱뒤뚱 걸어다니기 4. 날아다니기 . . 오리가 할 수 있..