디자인 패턴 (Design Pattern)

김건우·2023년 3월 20일
0

📌디자인 패턴이란?

(소프트웨어) 디자인 패턴이란 특정 문맥에서 공통적으로 발생하는 문제에 대해 쓰이는 재사용 가능한 해결책

목적별로 일정한 패턴이 제시되어 있음.
상황에 맞춰 최정화된 패턴을 결정하여 사용하는 것이 좋음.

📌디자인 패턴의 장점

  • 개발자 간의 원활한 협업이 가능
  • 소프트웨어의 구조를 파악하기 용이함
  • 재사용을 통해 개발 시간 단축
  • 설계 변경이 있을 경우 비교적 원활하게 조치가 가능

📌디자인 패턴의 단점

  • 객체지향적 설계를 고려하여 진행해야 함
  • 초기 투자 비용이 많이 들어감 (돈 뿐만 아니라 시간 등 포함)

💡GoF의 디자인 패턴

목적에 따른 분류

💡생성 패턴

  • 생성 패턴은 객체의 생성과 관련된 패턴
  • 특정 객체가 생성되거나 변경되어도 프로그램 구조에 영향을 최소화 할 수 있도록 유연성 제공

추상 팩토리 : 구체적인 클래스를 지정하지 않고 인터페이스를 통해 연관되는 객체들을 묶어줌
빌더 : 객체의 생성과 표현을 분리하여 객체를 생성
팩토리 메소드 : 객체 생성을 서브클래스로 분리하여 위임 (캡슐화)
싱글톤 : 한 클래스마다 인스턴스를 하나만 생성하여 어디서든 참조

💡구조 패턴

  • 구조 패턴은 프로그램 내 자료 구조나 인터페이스 구조 등 프로그램 구조를 설계하는데 사용되는 패턴
  • 클래스나 객체를 조합하여 더 큰 구조를 만들 수 있게 해줌

어댑터 : 클래스의 인터페이스를 어떤 클래스에서든 이용할 수 있도록 반환
브리지 : 구현부에서 추상층을 분리하여 각자 독립적으로 변형 하고 확장할 수 있도록 함
데코레이터 : 주어진 상황에 따라 객체에 다른 객체를 덧붙임
파사드 : 서브 시스템에 있는 인터페이스 집합에 대해 통합된 인터페이스 제공

💡행동 패턴

  • 행동 패턴은 반복적으로 사용되는 객체들의 커뮤니케이션을 패턴화
  • 객체 사이에 알고리즘 또는 책임을 분배하는 방법에 대해 정의됨
  • 결합도를 최소화 하는 것이 주 목적

🍒 디자인 패턴은 간략하게만 알고 설계 단계에서 디테일하게 적용하면 더 좋은 코드를 만들 수 있다.

profile
공부 정리용

0개의 댓글