디자인 패턴(DESIGN PATTERNS)

y30n9ju1v·2021년 9월 18일
0

프로그래밍

목록 보기
2/18

* 디자인 패턴이란?

디자인 패턴은 소프트웨어 디자인에서 일반적으로 발생하는 문제에 대한 일반적인 솔루션입니다.
이는 코드에서 반복되는 디자인 문제를 해결하기 위해 사용자 지정할 수 있는 미리 만들어진 청사진과 같습니다.

패턴은 특정 코드 조각이 아니라 특정 문제를 해결하기 위한 일반적인 개념입니다.
패턴 세부 사항을 따르고 자신의 프로그램의 현실에 맞는 솔루션을 구현할 수 있습니다.
만들어진 함수나 라이브러리를 사용하는 것처럼 패턴을 찾아 프로그램에 복사할 수는 없습니다.

패턴은 알고리즘과 혼동되는 경우가 많습니다.
두 개념 모두 알려진 문제에 대한 일반적인 솔루션을 설명하기 때문입니다.
알고리즘은 항상 어떤 목표를 달성할 수 있는 명확한 일련의 작업을 정의하지만 패턴은 솔루션에 대한 보다 높은 수준의 설명입니다.
두 개의 다른 프로그램에 적용된 동일한 패턴의 코드는 다를 수 있습니다.
알고리즘에 대한 비유는 요리법인 반면에 패턴은 청사진에 가깝습니다.
결과와 그 기능이 무엇인지 볼 수 있지만 정확한 구현 순서는 사용자에게 달려 있습니다.

* 디자인 패턴을 배워야 하는 이유

디자인 패턴은 소프트웨어 디자인의 일반적인 문제에 대한 시도되고 테스트된 솔루션의 툴킷입니다.
패턴을 아는 것은 객체 지향 설계 원칙을 사용하여 모든 종류의 문제를 해결하는 방법을 가르쳐주기 때문에 여전히 유용합니다.

디자인 패턴은 당신과 팀원이 보다 효율적으로 의사소통하는 데 사용할 수 있는 공통 언어를 정의합니다.
"그냥 싱글톤을 사용하세요"라고 말하면 모두가 당신의 제안 뒤에 숨겨진 아이디어를 이해할 것입니다.
패턴과 이름을 안다면 싱글톤이 무엇인지 설명할 필요가 없습니다.

* 패턴의 분류

생성 패턴은 기존 코드의 유연성과 재사용을 증가시키는 객체 생성 메커니즘을 제공합니다.

구조 패턴은 구조를 유연하고 효율적으로 유지하면서 객체와 클래스를 더 큰 구조로 조합하는 방법을 설명합니다.

  • 어댑터(Adapter)
  • 브릿지(Bridege)
  • 컴포지트(Composite)
  • 데코레이터(Decorator)
  • 파사드(Facade)
  • 플라이웨이트(Flyweight)
  • 프록시(Proxy)

행동 패턴은 효과적인 의사 소통과 객체 간의 책임 할당을 처리합니다.

  • 책임 체인(Chain or Responsibility)
  • 커멘드(Command)
  • 반복자(Iterator)
  • 중재자(Mediator)
  • 메멘토(Memento)
  • 옵저버(Observer)
  • 상태(State)
  • 전략(Strategy)
  • 템플릿 메소드(Template Method)
  • 방문자(Visitor)

참고 : https://refactoring.guru/design-patterns

0개의 댓글