본문 바로가기
반응형

SWE/C++ OOP43

[디자인 패턴] Adapter Pattern 어댑터 패턴 어댑터 패턴 Adapter Pattern 어댑터 패턴이란 클래스의 인터페이스를 사용자가 기대하는 다른 인터페이스로 변환하는 패턴이다. 우리가 해외여행 갈 때 챙겨가는 어댑터를 떠올리면 이해가 쉽다. 한국 전원 플러그는 보통 220V를 사용하는데 해외는 110V 전압을 사용하고 플러그 핀 갯수나 모양도 다르다. 따라서 한국 전자제품을 해외로 가져가서 사용할 때 해외 규격에 맞춰서 변환해주는 '어댑터'가 필요하다. 어댑터 패턴도 이와 같은 역할을 한다. 우리가 원하는 규격으로 변환해주는 패턴이다. 예제 사각형을 그리는 클래스로 예시를 들어보겠다. 예를 들어, 기존에 사각형을 그리는 클래스를 제공해주고 있었는데, 새로운 업체에서는 사각형 클래스의 메소드 인자 타입을 변경하였다. 각 업체마다 제공해주는 형식이 .. 2021. 9. 23.
[디자인 패턴] Command Pattern 커맨드 패턴 | 디자인 패턴의 3종류 | 행동 패턴 디자인 패턴의 3가지 타입 디자인 패턴의 3가지 타입 디자인 패턴들은 크게 3가지 타입으로 나눌 수 있다. - 생성 패턴 (Creational Patterns) - 구조 패턴 (Structural Patterns) - 행동 패턴 (Behavioral Patterns) 생성 패턴 Creational Patterns 이름에서 볼 수 있듯이 생성 패턴은 클래스 생성을 위한 디자인이다. 따라서 클래스 생성 패턴 또는 객체 생성 패턴이라고 불리기도 한다. 예시로는 팩토리 패턴, 싱글턴 패턴, 프로토타입 패턴, 빌더 패턴 등이 있다. 구조 패턴 Structural Patterns 구조 패턴은 클래스의 구조, 구성(composition)과 관계가 깊다. 대부분의 구조 패턴의 목적은 각 클래스들의 구성을 최소화하는 것.. 2021. 9. 7.
[디자인패턴] 데코레이터 패턴 | 악세사리 가격 계산 예시 코드 Decorator Pattern 데코레이터 패턴 개념 데코레이터 패턴에서는 데코레이터가 객체를 겹겹이 감쌈(wrapping)으로써 객체에 추가적인 요건을 동적으로 첨가한다. 데코레이터 패턴은 이름처럼 감싸는, 꾸며주는 패턴이다. 개념만 보고는 이해가 어려울 수 있으니, 액세서리를 예로 들어보겠다. 예시- 판도라 팔찌 판도라 팔찌는 링을 고르고 자기 스타일대로 참을 골라서 끼우는 걸로 유명하다. 고객이 팔찌와 참들을 자기 취향에 맞게 고르면, 그 팔찌의 가격을 계산하는 프로그램을 데코레이터 패턴을 사용해서 구현해보자. 1. 팔찌를 고른다. 2. 참들을 고른다. 예를 들어 고객이 은팔찌에 별과 하트참을 추가한다면 객체는 이런 모습을 가질 것이다. 처음엔 silverbracelet을 선택하고 금액을 산출한다... 2021. 8. 23.
[디자인패턴] Observer Pattern 옵저버 패턴 Observer Pattern 옵저버 패턴 개념 옵저퍼 패턴이란 한 객체의 상태가 바뀌면 다른 객체들한테 새 소식을 알려줄 수 있는 패턴이다. 이 때, 소식을 전달하는 객체는 Subject서브젝트라 하고, 소식을 받는 객체들을 Observer옵저버라고 한다. 옵저버 패턴은 신문 구독 메커니즘과 같다. 사람들은 출판사에 구독 신청을 하고, 출판사는 신문을 구독하고 있는 사람들에게만 신문을 발행한다. 출판사는 subject이고, 신문을 받아보는 구독자들은 observer이다. 서브젝트는 한 개이고, 구독자들은 여러 개인 일대다 관계이다. 변화가 있을 때 서브젝트는 모든 객체들에게 그 변화를 알리는 것이 아니라, 구독 신청을 한 객체들(즉 옵저버들)에게만 알린다. 위의 그림에서 보면, 우측의 Dog, Cat,.. 2021. 8. 9.
반응형