[정보처리기사] GoF(Gangs of Four) 디자인 패턴

yurinnn·2024년 2월 11일

정보처리기사

목록 보기
1/21

생성 패턴

객체 생성에 대한 패턴 / 캡슐화+유연성 목표

종류설명
팩토리 메소드 (Factory Method)상위 클래스는 객체를 생성하는 인터페이스만 제공하고,하위 클래스에서 인스턴스 생성
프로토타입 (Prototype)Prototype 먼저 생성하고, 인스턴스를 복제하여 사용, 비용 저렴
싱글톤 (Singleton)클래스 내 생성되는 인스턴스가 하나만 필요할 때 사용(동시참조X)
빌더 (Builder)분리된 인스턴스를 조합하여 객체 생성. 같은 객체를 생성해도 다른 결과를도출할 수 있음
추상 팩토리 (Abstract Factory)상위 클래스의 객체 생성코드를 하위클래스가 상속받는다(상위변경=하위자동변경) 

구조 패턴

구조가 복잡한 시스템 개발에 도움

종류설명
어댑터(Adapter)일치하지 않는 인터페이스 변환(전류 어댑터와 같은 역할) 기존에 구현되어 있는 클래스에 기능 발생 시 기존 클래스를 재사용할 수 있도록 중간에서 맞춰주는 역할
브릿지(Bridge)추상층(기능)과 구현층(구체화)을 분리하여 서로 독립적 확장 가능
합성(Composite)트리구조로 구성
데코레이터(Decorator)클래스에 기능을 추가하기 위해 다른 객체를 덧붙이는 형태
프록시(Proxy)접근이 어려운 객체에 접근할 수 있도록 인터페이스 역할 수행

행동 패턴

상호작용이나 책임 분배에 대한 부분을 정의하고 결합도는 최소화 하는 것이 목표

종류설명
중재자(Mediator)객체간의 통제와 지시의 역할을 하는 중재자를 두어 객체지향 목표 달성하게 해줌 (상호작용을 캡슐화하여 결합도를 낮추기위해 사용)
상태(State)이벤트를 객체 상태에 따라 다르게 처리해야할 때 사용. 카톡 알림설정 같은 느낌
책임 연쇄(Chain of Responsibility)요청을 처리할 수 있는 객체가 둘 이상 존재하여 한 객체가 처리하지 못하면 다음 객체로 넘어가는 형태의 패턴. 각 객체들이 고리(Chain)으로 묶여있어 요청이 해결될 때까지 고리를 따라 책임이 넘어간다.
커맨드(Command)명령어를 캡슐화하여 재사용하거나 취소할 수 있도록 필요한 정보를 로그에 남기는 형태
인터프리터(Interpreter)언어에 문법 표현을 정의하는 패턴
반복자(Iterator)접근이 잦은 객체는 동일한 인터페이스를 사용하도록 하는 패턴
중재자(Mediator)상호작용을 캡슐화하여 결합도를 낮추기위해 사용
메멘토(Memento)특정 시점에서의 객체 내부 상태를 객체화함으로써 이후 요청에 따라 객체를 해당 시점의 상태로 돌릴 수 있는 기능을 제공하는 패턴이다. Ctrl+Z 기능이 이 패턴의 대표적 기능
옵저버(Observer)이벤트 발행과 구독, 상태 변화 전달. 한 객체의 상태가 변화하면 객체에 상속되어있는 다른 객체들에게 변화된 상태를 전달하는 패턴. 카톡의 읽음표시 같은 느낌
전략(Strategy)동일 계열 알고리즘 상호 교환, 독립적 사용
템플릿 메소드(Template Method)상위에서 인터페이스를 정의하고 하위에서 구체화시킴 (유지보수 쉬워짐)
방문자(Visitor)처리 기능을 별도의 클래스로 구성. 분리된 처리 기능은 각 클래스를 방문(Visit)하여 수행한다.
profile
슬기로운 개발 생활

0개의 댓글