[정보처리기사] 현행 시스템 분석 - 디자인 패턴

이아현·2023년 7월 5일
0

정보처리기사

목록 보기
10/11
post-thumbnail

4. 디자인 패턴

✅ 디자인 패턴

  • 소프트웨어 공학의 소프트웨어 설계에서 공통으로 발생하는 문제에 대해 자주 쓰이는 설계방법을 정리한 패턴
  • 개발의 효율성, 유지보수성, 운영성이 높아지고, 프로그램의 최적화에 도움

✅ 디자인 패턴 유형

구분유형설명
목적생성객체 인스턴스 생성에 관여, 클래스 정의와 객체 생성 방식을 구조화, 캡슐화를 수행하는 패턴
구조더 큰 구조 형성 목적으로 클래스나 객체의 조합을 다루는 패턴
행위클래스나 객체들이 상호 작용하는 방법과 역할 분담을 다루는 패턴
범위클래스클래스 간 관련성(상속 관계를 다루는 패턴), 컴파일 타임에 정적으로 결정
객체객체 간 관련성을 다루는 패턴, 런타임에 동적으로 결정

✅ 디자인 패턴 종류

구분패턴설명
생성 패턴Builder복잡한 인스턴스를 조립하여 만드는 구조 / 생성과 표기를 분리해서 복잡한 객체를 생성
Prototype기존 객체를 복제함으로써 객체를 생성
Factory Method상위 클래스에서 객체를 생성하는 인터페이스를 정의하고, 상위 클래스에서는 인스턴스를 만드는 방법만 결정 / 생성할 객체의 클래스를 국한하지 않고 개체 생성
Abstract Method동일한 주제의 다른 팩토리를 묶음
Singleton한 클래스에서 한 객체만 존재하도록 제한
구조 패턴Bridge기능의 클래스 계층과 구현의 클래스 계층을 연결하고, 추상화된 부분과 실제 구현 부분을 독립적으로 확장
Decorator기존에 구현되어 있는 클래스에 필요한 기능을 추가해나가는 설계 패턴
Facade복잡한 시스템에 대해여 단순한 인터페이스를 제공하여 사용자와 시스템 간의 결함도를 낮추어 시스템 구조에 대한 파악을 쉽게 하는 패턴 / 오류에 대해서 단위별로 확인
Flyweight다수의 객체로 생성될 경우 모두가 갖는 본질적인 요소를 클래스화하여 공유함으로써 메모리 절약, 클래스를 경량화함
Proxy실체 객체에 대한 대리 객체, 실제 객체에 대한 접근 이전에 필요한 행동을 취할 수 있게 만듦 => 메모리 용량 아끼기
Composite객체들의 관계를 트리구조로 만들어 부분-전체 계층을 표현하는 패턴
Adapter기존에 생성된 클래스를 재사용할 수 있도록 중간에서 맞춰주는 역햘을 하는 인터페이스를 만드는 패턴
행위 패턴Mediator객체의 수가 너무 많아졌을 때 중간에서 이를 통제, 지시할 수 있는 중재자를 두고, 중재자에게 모든 것을 요구하여 통신의 빈도수를 줄여 객체 지향의 목표를 달성하게 해주는 디자인 패턴
Interpreter여러 형태의 언어 구문을 해석할 수 있게 만드는 디자인 패턴
Iterator내부구조를 노출하지 않고, 복잡 객체의 원소를 순차적으로 접근 가능하게 해주는 디자인 패턴
Template Method작업 처리의 일부분을 서브 클래스를 캡슐화해 전체 일을 수행하는 구조는 바꾸지 않으면서 특정 단계에서 수행하는 내역을 바꾸는 패턴
Observer객체의 상태 변하에 따라 다른 객체의 상태도 연동하여 변경된 내용으로 갱신해주는 디자인 패턴, 일대다 의존
State객체의 상태에 따라 행위 내용을 변경
Visitor처리 기능을 분리하여 별도의 클래스를 만들어놓고 해당 클래스의 메서드가 각 클래스를 돌아다니며 특정 작업을 할 수 있도록 만드는 패턴
Command요구사항을 객체로 캡슐화한 디자인 패턴
Strategy행위를 클래스로 캡슐화해 동적으로 행위를 자유롭게 바꿀 수 있게 해주는 디자인 패턴
Memento객체의 정보를 저장할 필요가 있을 때 적용, Undo기능을 개발할 때 사용하는 패턴
Chain of Responsibility한 요청을 2개 이상의 객체에서 처리할 때 사용하는 디자인 패턴
profile
PM을 지향하는 FE 개발자 이아현입니다 :)

0개의 댓글