본문 바로가기
Back-End/Java

[Design Pattern] 디자인 패턴의 정의와 종류

by 달의 조각 2022. 9. 25.

 

 

소프트웨어 디자인 패턴

 

 

디자인 패턴이란 특정 문제(혹은 작업)를 해결하기 위한 잘 입증된 솔루션이다. 소프트웨어 개발 과정에서 발견한 지식과 경험을 통해 재사용 할 수 있는 형태로 규약을 만들어서 정리된 것이다. 디자인 패턴을 사용하면 코드를 유연하고 효율적이게 유지보수 할 수 있다. 아래의 23가지 디자인 패턴을 GoF(Gang of Four) 디자인 패턴이라고 한다.

 

🎨 Creational Design Pattern

생성 패턴은 객체를 만드는 방식과 관련이 있다. 객체를 생성하는 방법에는 new 키워드를 이용하는 방법이 있지만 프로그램의 특성에 따라 구조를 변경할 경우에 유연성을 제공하지 않기 때문에 좋은 방법이 아니다.

  1. Factory Pattern
  2. Abstract Factory Pattern
  3. Singleton Pattern
  4. Prototype Pattern
  5. Builder Pattern

 

🎨 Structural Design Pattern

구조 패턴은 더 큰 구조를 형성하기 위해 클래스와 객체를 구성하는 방법과 관련이 있다. 클래스의 상속 관계와 다른 클래스에서 구성되는 방식에 중점을 둬서 구조를 단순화한다.

  1. Adapter Pattern: 클라이언트의 기대에 따라 인터페이스를 다른 인터페이스에 적용한다. 서로 다른 인터페이스의 클래스들이 함께 작동할 수 있도록 한다.
  2. Bridge Pattern: 구현에서 추상화(인터페이스)를 분리한다.
  3. Composite Pattern: 클라이언트가 개체의 계층 구조에서 작동할 수 있도록 한다.
  4. Decorator Pattern: 객체에 동적으로 기능을 추가한다.
  5. Facade Pattern: 인터페이스 세트에 인터페이스를 제공한다.
  6. Flyweight Pattern: 객체를 공유하여 재사용한다.
  7. Proxy Pattern: 다른 개체를 나타낸다.

 

🎨 Behavioral Design Pattern

행동 패턴은 객체의 상호 작용 및 책임과 관련이 있다. 객체 간의 상호작용은 쉬워야 하고 느슨하게 결합되어 있어야 한다.

  1. Chain Of Responsibility Pattern
  2. Command Pattern
  3. Interpreter Pattern
  4. Iterator Pattern
  5. Mediator Pattern
  6. Memento Pattern
  7. Observer Pattern
  8. State Pattern
  9. Strategy Pattern
  10. Template Pattern
  11. Visitor Pattern
  12. Null Object

 

📚 Reference

댓글