[정보처리기사] 디자인패턴

LU·2025년 2월 20일
0
post-thumbnail

디자인 패턴(Design Pattern) 사용할 때의 장단점

☑️ 장점

  • 개발자 간의 원활한 의사소통을 지원한다.
  • 소프트웨어 구조 파악이 쉽다.
  • 재사용을 통한 개발 시간을 단축할 수 잇다.
  • 설계 변경 요청에 유연한 대처를 할 수 있다.
  • 객체지향 설계 및 구현의 생산성을 높이는데 적합하다.

☑️ 단점

  • 객체지향 설계/구현 위주로 사용된다.
  • 초기 투자 비용 부담이 된다.

디자인 패턴의 구성 요소

🔸 GoF(Gangs of Four) 디자인 패턴

  • 객체지향 설계 단계 중 재사용에 관한 유용한 설계를 디자인 패턴화하였다.
  • 생성패턴, 구조 패턴, 행위 패턴으로 분류한다.

생성패턴

  • 객체를 생성하는 것
  • 객체의 생성과 변경이 전체 시스템에 미치는 영향을 최소화하도록 만들어주어 유연성을 높일 수 있고 코드를 유지하기가 쉬운 편이다
  • 객체의 생성과 참조 과정을 추상화함으로써 시스템을 개발할 때 부담을 덜어준다.

🔸 Factory Method

  • 상위 클래스에서 객체를 생성하는 인터페이스를 정의하고, 하위 클래스에서 인스턴스를 생성하도록 하는 방식
  • Virtual-Constructor 패턴

🔸 Singleton

  • 전역 변수를 사용하지 않고 객체를 하나만 생성하도록 한다.
  • 생성된 객체를 어디에서든지 참조할 수 있도록 하는 패턴이다.

🔸 Prototype

  • prototype을 먼저 생성하고 인스턴스를 복제하여 사용하는 구조이다.
  • 일반적인 방법으로 객체를 생성한다.
  • 비용이 많이 소요되는 경우 주로 사용한다.

🔸 Builder

  • 작게 분리된 인스턴스를 조리하듯 조합하여 객체를 생성한다.

🔸 Abstraction Factory(추상팩토리)

  • 구체적인 클래스에 의존하지 않고 서로 연관되거나 의존적인 객체들의 조합을 만드는 인터페이스를 제공하는 패턴이다.
  • 관련된 서브 클래스를 그룹지어 한 번에 교체할 수 있다.

구조패턴

  • 클래스나 객체를 조합해 더 큰 구조를 만드는 패턴이다.
  • 복잡한 형태의 구조를 갖는 시스템을 개발하기 쉽게 만들어주는 패턴이다.
  • 새로운 기능을 가진 복합 객체를 효과적으로 작성할 수 있다.
  • 구성
    • Adapter
    • Bridge
    • Composite
    • Decorator
    • Facade
    • Flyweight
    • Proxy

행위 패턴

  • 반복적으로 사용되는 객체들의 상호작용을 패턴화한 것으로, 클래스나 객체들이 상호작용하는 방법과 책임을 분산하는 방법을 정의한다.
  • 메시지 교환과 관련된 것으로, 객체 간의 행위나 알고리즘 등과 관련된 패턴을 말한다.
  • 구성
    • Chain of Responsibility(책임연쇄)
    • Iterator(반복자)
    • Command(명령)
    • Interpreter(해석자)
    • Memnto(기록)
    • Observer(감시자)
    • State(상태)
    • Stratege(전략)
    • Visitor(방문자)
profile
기록은 나의 무기😎

0개의 댓글