jujuwon
시크릿주주
jujuwon
전체 방문자
오늘
어제
  • 분류 전체보기 (106)
    • 🔠 프로그래밍언어 (35)
      • ☕️ Java (19)
      • 🐠 Python (15)
      • 🍠 Kotlin (1)
    • 🔙 Backend (16)
      • 🌿 Springboot (12)
      • 🐳 Docker (1)
      • ☁️ AWS (3)
    • 💼 CS (12)
      • 📶 Network (12)
    • 🕹 알고리즘 (14)
      • 📑 스터디 (2)
      • 💁🏻‍♂️ 백준 (9)
      • 👨🏼‍🔬 프로그래머스 (3)
    • 📚 Book (8)
      • 🔎 오브젝트 (4)
      • 🧪 TDD (2)
      • 📜 논문 (2)
    • 🔐 보안 (7)
      • 👾 Pwnable (7)
    • 📝 회고 (4)
    • 🧩 etc. (10)
      • ⚠️ issue (2)
      • 💡 꿀팁 (7)
      • ✏️ 끄적 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

인기 글

최근 글

hELLO · Designed By 정상우.
jujuwon

시크릿주주

Java :: 디자인 패턴
🔠 프로그래밍언어/☕️ Java

Java :: 디자인 패턴

2022. 12. 12. 16:10
반응형

 

디자인 패턴


디자인 패턴이란?

  • 설계 문제에 대한 해답을 문서화 하기 위해 고안한 형식
  • 반복되는 패턴의 원리에 대한 개념을 공학적인 측면에서 도입한 것
  • 특정 코드의 일부분이 아님
    • 라이브러리처럼 프로그램에 붙여넣을 수 없음
디자인 패턴을 도입하는 것이 해답이 아니다.
잘못 도입하면 문제가 될 수도 있음

 

장점

  • 프로그램 전체 라인을 읽지 않아도 쉽게 인식하고 요점 파악 가능
  • 추상적인 수준에서 다른 팀원들과 의사소통 효과적으로 할 수 있음
  • 프로그래밍 언어, 개발중인 프로그램에 관계 없이 재사용 및 확장 가능

 

GoF - Gang of Four


  • 객체지향 분야의 문제점을 분석해 24개 패턴으로 분류
    • 기존 객체지향 설계 시 발생했던 문제를 카탈로그화 하여 패턴 정리
  • 대규모 프로젝트의 진행에서 가장 중요한 요소는 통일된 개발방식의 공유
    • 개발 방법을 정의하여 보다 통일화된 좋은 코드 작성 가능
  • 구조만으로 패턴을 파악하는 것은 불가능
    • 패턴을 파악하려면 개발자의 의도를 알아야함

 

GoF 디자인 패턴 분류

  • 생성 패턴 : 객체 생성에 관련된 패턴
팩토리(Factory), 팩토리 메소드(Factory method), 추상 팩토리(Abstract Factory),
빌더(Builder), 프로토타입(Prototype), 싱글톤(Singleton)
  • 구조 패턴 : 클래스나 객체를 조합해 더 큰 구조를 만드는 패턴
어댑터(Adapter), 브릿지(Bridge), 컴포지트(Composite), 데코레이터(Decorator),
퍼사드(Facade), 플라이웨이트(Flyweight), 프록시(Proxy)
  • 행위 패턴 : 객체나 클래스 사이의 알고리즘이나 책임 분배에 관련된 패턴
옵저버(Observer), 상태(State), 전략(Strategy), 템플릿(Template),
비지터(Visitor), 역할 사슬(Chain of Responsibility), 커맨드(Command),
인터프리터(Interpreter), 이터레이터(Iterator), 미디에이터(Mediator)

 

728x90
반응형
저작자표시 (새창열림)
    '🔠 프로그래밍언어/☕️ Java' 카테고리의 다른 글
    • Java :: 팩토리(Factory) 메소드 패턴
    • Java :: 싱글톤(Singleton) 패턴
    • Java :: 프로그램 개발 원칙
    • Java :: 객체지향 5대 설계 원칙 - SOLID
    jujuwon
    jujuwon

    티스토리툴바