본문 바로가기

자격증/정보처리기사

현행 시스템 파악 - 디자인 패턴

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

 

디자인 패턴 구성요소 : (패문솔 사결샘)

- 패턴의 이름, 문제 및 배경, 솔루션, 사례, 결과, 샘플 코드

 

디자인 패턴 유형

목적에 따라 : (생구행) 생성, 구조, 행위

범위에 따라 : (클객) 클래스, 객체

 

생성패턴 (생빌 프로 팩앱싱)

빌더 - 복잡한 인스턴스를 조립하여 만드는 구조

프로토타입 - 원형을 만들어 놓고 이것을 복사한 후 필요한 부분만 수정하여 사용하는 패턴

팩토리 메소드 - 상위 클래스에서 객체를 생성, 하위 클래스에서 인스턴스를 생성하는 패턴

앱스트랙 팩토리 - 연관된 객체들의 조합을 만드는 인터페이스를 제공하는 패턴

싱글톤 - 객체를 하나만 생성하도록 하여 생성된 객체를 어디에서든지 참조할 수 있도록 하는 패턴

 

구조패턴 (구 브데 퍼플 프록 컴 어)

브리지 - 추상화된 부분과 실제 구현 부분을 독립적으로 확장할 수 있는 패턴 

데코레이터 - 구현되어있는 클래스에 필요한 기능을 추가해 나가는 패턴

퍼사이드 - 단순한 인터페이스를 제공하므로써 시스템 구조에 대한 파악을 쉽게 하는 패턴

플라이웨이트 - 객체가 많이 생성될경우 중복된 요소를 클래스화하여 공유함으써 메모리를 절약하는 패턴

프록시 - 실체 객체에 대한 대리 객체로 실체 객체에 접근하기 전에 필요한 행동을 취할 수 있게 만드는 패턴

컴포지트 - 객체들의 관계를 트리구조로 구성하여 부분-전체 계층을 표현하는 패턴

어뎁터 - 클래스를 재사용할 수 있도록 중간에서 맞춰주는 역할을 하는 인터페이스를 만드는 패턴

 

행위패턴 (행 미인이 템옵 스테 비커 스트 메체)

미디에이터 - 중재자를 두어 통신의 빈도수를 줄여 객체 지향의 목표를 달성하게 해주는 패턴

인터프린터 - 여러 언어 구문을 해석할 수 있게 만드는 패턴

이터레이터 - 구현방법을 노출시키지 않으면서도 집합체 안에 있는 모든 항목에 접근할 방법을 제공하는 디자인 패턴

템플릿 메서드 - 특정 단계에서 수행하는 내역을 바꾸는 패턴

옵저버 - 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른객체들에게 연락이가고 자동으로 내용이 갱신되는 패턴

스테이트 - 객체 상태를 캡슐화하여 클래스화 함으로써 그것을 참조하게 하는 패턴

비지터 - 처리기능을 분리하여 클래스를 만들어 놓고 해당 클래스의 메서드가 각 클래스를 돌아다니며 특정 작업을 수행하도록 만드는 패턴

커멘드 - 기능을 캡슐화함으로써 재사용성이 높은 클래스를 설계하는 패턴

스트레티지 - 알고리즘을 캡슐화한다음 필요할 때 서로 교환해서 사용할 수 있게 하는 패턴

메멘토 - 객체의 정보를 저장할 필요가 있을 때 적용하는 패턴

체인 오브 리스판서빌리티 - 기능 처리의 연결 변경이 불가능 할때 동적으로 연결되어 있는 경우에 따라 다르게 처리될 수 있도록 연결한 패턴