본문 바로가기
취업준비/전산 기초

소프트웨어 디자인 패턴(Design Pattern)

by ag_zero 2021. 9. 15.
728x90

디자인 패턴이란

소프트웨어 설계에서 공통으로 발생하는 문제에 대해 자주 쓰이는 설계 방법을 정리한 패턴이다.

개발의 효율성, 유지보수성, 운용성이 높아지며, 프로그램 최적화에 도움이 된다.

생성   구조   행위


 

디자인 패턴 유형

목적
생성패턴 구조패턴 행위패턴
객체 인스턴스 생성에 관여
클래스 정의와 객체 생성 방식 구조화, 캡슐화 수행
더 큰 구조 형성 목적으로
객체의 조합을 다루는 패턴
클래스나 객체들이 상호작용하는 방법
역할 분담을 다루는 패턴

 

 

 

🚩 생성패턴
1) Builder : 복잡한 인스턴스를 조립하여 만드는 구조


2) Prototype : 처음부터 일반적 원형을 만들어 놓고, 복사하여 새 개체를 생성할 수 있도록 하는 패턴


3) Factory Method : 상위 클래스에서 객체를 생성하는 인터페이스, 하위클래스에서 인스턴스를 생성


4) Abstract Method : 구체적 클래스에 의존하지 않고 서로 연관,의존적인 객체들의 조합 만드는 인터페이스 제공


5) Singleton : 전역 변수를 사용하지 않고 객체를 하나만 생성, 어디서든지 참조 가능

 

 

 

🚩 구조패턴
1) Bridge : 기능과 구현의 클래스 계층 연결, 구현부에서 추상계층 분리


2) Decorator : 기존 구현 클래스에 필요한 기능을 추가, 기능 확장


3) Facade : 복잡 시스템 단순한 인터페이스 제공, 결합도를 낮추어 구조에 대한 파악 쉽게함

 

4) Flyweight : 클래스 경량화, 여러 개의 가상 인스턴스 제공


5) Proxy : 실체 객체에 대한 대리 객체, 대리인이 대신 그 일을 처리하는 패턴


6) Composite : 트리 구조로 구성해 부분-전체 계층을 표현


7) Adapter : 기존 생성 클래스 재사용 할 수 있도록 중간에서 맞춰주는 역할

 

 

 

🚩 행위패턴
1) Interpreter : 언어의 다양한 해석, 구체적으로 구문 나누고 분리된 구문 해석


2) Template Method : 구조는 바꾸지 않으면서 특정 단계에서 수행하는 내역을 바꾸는 패턴


3)  Mediator : 중재자에게 모든것을 요구, 통신 빈도수 줄여 객체지향 목표를 달성


4) Command : 재사용성이 높은 클래스를 설계하는 패턴


5) Iterator : 내부 표현은 보여주지 않고 순회하는 패턴


6) State : 객체 상태를 캡슐화

 

7) Visitor : 데이터 구조로부터 처리 기능을 분리해 별도의 클래스를 만들고 각 클래스를 돌아다니며 특정 작업 수행

 

8) Observer : 상태가 변할 때 의존자들에게 알리고, 자동 업데이트하는 패턴


9) Strategy : 다양한 알고리즘 캡슐화하여 필요할 때 서로 교환해서 사용할 수 있게 하는패턴


10) Memento : 정보를 저장할 필요가 있을때 적용, Undo기능 개발할 때 사용


11)Chain of Responsibility : 하드 코딩 되어 있을때 객체들끼리 연결 고리를 만들어 내부적으로 전달하는 패턴