CS/소프트웨어개발방법론

디자인패턴이란? (Design Pattern)

씩씩한 IT블로그 2022. 2. 13. 11:50
반응형

디자인 패턴이란?

반복적으로 해결해야 할 문제를 어떻게 풀것인지에 대한 솔루션.

 

1. 생성패턴(creation pattern) : 객체의 생성과정에 관여하는 패턴

    - Abstract Factory : 각각의 구체적인 클래스를 지정하지 않고 서로 서로 관련성이 있는 객체들끼리는 쉽게 교체될 수 있도록 고안한 패턴

    - Builder : 객체의 생성과 합성, 생성과 표현코드를분리. 인스턴스들이 어떻게 만들고, 어떻게 맞붙는지에 대한 부분을 캡슐화한다.

    - Factory Method : 부모 클래스에 알려지지 않은 구체 클래스를 생성하는것. 자식 클래스가 어떤 객체를 생성할지 결정하도록 함. 부모 클래스에서 구채 클래스의 이름을 감추기 위해 사용

    -  prototype(원형패턴) : 프로토타입 객체를 생성하고 이를 복사하여 새로운 객체를 만드는것. 객체 생성 비용을 줄일 수 있다.

    - singleton : 클래스의 인스턴스가 하나임을 보장하는 것. 생성자가 여러 차례 호출되더라도 최초 생성된 이후 호출에서는 최초 생성자가 생성한 객체를 리턴한다

 

2. 구조패턴(structural pattern) : 클래스나 객체의 합성에 관한 패턴

    - adapter(or wrapper 적응자 패턴) : 클래스의 인터페이스를 사용자가 기대하는 다른 인터페이스로 변환하는 패턴. 호환성이 없는 인터페이스때문에 함께 동작할 수 없는 클래스들이 함께 동작하도록 해준다

    - bridge : 구현부와 인터페이스(개발자와 클라이언트)를 분리하여 독립적으로 변형시킬 수 있도록 한 패턴

    - composite : 객체 간의 부분-전체 관계형성 및 관리

    - Decorator : 주어진 상황 및 용도에 따라 객체에 기능을 동적으로 추가

    - Facade(퍼사드) : 서브시스템에 통합된 인터페이스를 제공.

    - flyweight : 공유 가능한 정보와 그렇지 않은 정보를 분리하고, 공유 간으한 정보를 개체 형태로 정의하여 정보공유 수행. 인스턴스 한개만 가지가 여러개의 가상 인스턴스 제공. 메모리 낭비 줄임

    - proxy : 대리 객체를 통한 작업 수행. 

 

3. 행위패턴(behavioral pattern) : 클래스나 객체들이 상호작용하는 방법과 책임을 분산하는 방법

    - chain of responsibility : 요청 처리 객체들끼리 연결고리를 만들어 요청을 내부적으로 전달

    - command : 요청 자체를 캡슐화하여 사용자에게 보낸 요청을 나중에 확인할 수 있도록 하는것

    - interpreter : 문법 자체를 클래스로 정의, 문법 검사 및 필요한 기능도 별도 자료구조 없이 효율적으로 수행할 수 있게 해주는 클래스 고주. 즉 문법에 기반한 검증 및 작업처리

    - mediator(중재자패턴) : M:N관계를 M:1관계로 복잡도를 떨어뜨림. 상호작용을 캡슐화

    - memento : 객체의 이전상태를 저장해놓고 복원(오버헤드가 발생할 수 있다)

    - observer : 관찰자들을 두고 객체의 상태가 변하면 의존자들에게 알림

    - state : 객체 자체의 내부 상태에 따라 행위를 변경

    - starategy : 다양한 알고리즘(전략)들을 하나의 클래스로 캡슐화하는 것

    - template method : 상소 꽌계를 이용하면 구체적인 구현은 다르나, 큰 틀에서 알고리즘의 기본 골격이 동일한 경우, 동일한 기본 골격을 상위 클래스에서 하나의 모듈로 작성, 관리할 수 있게 되는것.

    - visitor : 실제 로직을 가지고 있는 객체(Visitor)가 로직을 적용할 객체(element)를 방문하면서 실행되는 패턴. 로직과 구조를 분리하는 패턴 -> 새로운 종류 작업 쉽게 추가가능.

 

반응형