디자인 패턴(Design Pattern)

상위문서 : 시스템 개발 방법론

필수참고문서 : 


목차

1. 개요
2. 설명
2.1. 어댑터 패턴  
2.2. 추상 팩토리 패턴
2.3. 컴포지트 패턴  
2.4. 브리지 패턴
2.5. 전략 패턴


1.개요

디자인 패턴은 정보 시스템을 설계하는데 클래스를 규격화한 일종의 노하우이다. 이렇게 규격화를 함으로 서로 클래스들의 연결을 매끄럽게 할 수 있으며 오류가 생길 확률을 줄여준다. (전체 패턴에 그림 넣기) 또한 이러한 패턴은 단일로만 사용되는게 아니라 다른 패턴과 섞어 쓰면서 여러 좋은 효과를 낼 수 있다.

2.설명

여기서는 대표적인 디자인 패턴 5가지를 알아본다.
들어가기전 디자인 패턴으로 직면한 문제를 해결하기 위한 다음과 같이 다섯가지를 생각해보면된다.
  1. 이름 - 다른 패턴과 구별할 수 있는 고유한 이름
  2. 문제 - 패턴이 사용되는 상황 즉 어떤 문제점 때문에 패턴을 사용했는지를 나타냄
  3. 해결책 - 협력 클래스와 인터페이스의 집합
  4. 결과 - 이 디자인 패턴을 사용함으로서 얻는 이득

2.1. 어댑터 패턴

어댑터 패턴은 오래된 클래스(래거시 클래스)의 인터페이스를 클라이언트가 원하는 다른 인터페이스로 바꾸고 싶을 때, 클라이언트와 레거시 클래스는 수정 없이 함께 작동하는 패턴을 말한다. 여기서 오래된 클래스와 인터페이스 사이에는 어댑터 클래스가 있는데 이 어댑터 클래스가 이전 인터페이스와 새 인터페이스 사이 출력에 변화가 있더라도 오래된 클래스나 클라이언트의 소스코드 변환없이 인터페이스의 출력을 일정한 형식으로 바꿔준다.

2.2. 추상 팩토리 패턴

추상 팩토리 패턴은 다양한 구성 요소 별로 객체의 집합을 생성할 때 유용하다. 예를 들어보자 같은 아파트에 살고 있더라고 집안의 있는 가구나 제품에 따라서 집이 달라보인다. 여기서 다양한 구성 요소란 가구나 제품을 말하며 이러한 이러한 구성 요소가 객체의 집합 즉 어떤 사람이 살고 있는 아파트 호실이 되는 것이다.

2.3. 컴포지트 패턴

컴포지트 패턴은 단일 객체와 복합 객체(단일 개체가 모여져서 만들어진 객체)가 동일하게 작동한다면 동일하게 다루도록 하는 패턴이다. 예를들어 지휘관이 지휘를 할 때 각 병사에게 공격과 이동 명령을 내릴 수 있지만 부대에게 공격과 이동 명령을 내릴 수 도 있다.

2.4.브리지 패턴

브리지 패턴은 여러 개발자들이 모여서 게임을 만든다고 해보자  여기서 공격을 구현하는데 공격 수단을 처음 칼을 만들고 활도 만들고 창도 만들었다. 그러다가 나중에 마법이라는 공격수단을 구현하고 싶을 때 이것을 쉽게 연결해 주는것이 브리지 패턴이다. (브릿지 패턴 보충 설명)

2.5.전략 패턴

전략패턴은 동적(시스템이 동작 중에도)으로 알고리즘을 교체할 수 있는 패턴이다. 어떤 출력을 하는 매소드는 동일하나, 그 목적을 달성할 수 있는 알고리즘이 존재할 경우 예를 들어 버블 정렬에서 삽입 정렬 알고리즘으로 바꾼다고 할 때 매소드는 버블 정렬 인터페이스에서 삽입 정렬 인터페이스로 교체하여 사용할 수 있다.

on 2017년 6월 12일 월요일 | A comment?
0 responses to “디자인 패턴(Design Pattern)”

Leave a Reply

최근 많이 본 글