본문 바로가기

프로그래밍&IT/기타

디자인 패턴 개요 (대분류 별 디자인패턴)

디자인 패턴을 제대로 공부해봐야지 했는데 계속 미루고 있었다.

더이상은 안되겠고, 꼭 정리한 번 해야지 하고 시작한다.

 

책은 C++로 된 책이지만

C# 코더(프로그래머라곤 차마 자신있게 말할순 없다보니...) 다보니, 내용을 이해해가면서 C#으로 포팅해야 할것같다

 

대분류 문제 유형 (사용목적 예시) 연관 디자인 패턴
객체 생성 제품군 별 객체 생성 Abstract Factory
부분 생성을 통한 전체 객체 생성 Builder
대행 함수를 통한 객체 생성 Factory Method
복제를 통한 객체 생성 Prototype
최대 N개까지로 객체 생성 제한 Singleton
구조 개선 기존 모듈 재사용을 위한 인터페이스 변경 Adapter
인터페이스와 구현의 명확한 분리 Bridge
객체간의 부분-전체 관계 형성 및 관리 Composite
객체의 기능을 동적으로 추가, 삭제 Decorator
서브시스템의 명확한 구분 정의 Facade
작은 객체들의 공유 Flyweight
대리 객체를 통한 작업수행 Proxy
행위 개선 수행 가능 객체로까지 요청 전파 Chain of Responsibility
수행할 작업의 일반화를 통한 조작 Command
간단한 문법에 기반한 검증 및 작업 처리 Interpreter
동일 자료형의 여러 객체 순차 접근 Iterator
M : N 객체 관계를 M : 1로 단순화 Mediator
객체의 이전 상태 복원 또는 보관 Memento
One Source Multiple Use Observer
객체 상태 추가시 행위 수행의 원활한 변경 State
동일 목적의 여러 알고리즘 중 선택해서 적용 Strategy
알고리즘의 기본 골격 재사용 및 상세구현 변경 Template Method
작업 종류의 효율적 추가, 변경 Visitor

이상 여기까지 크게 3개 분류에 따른, 목적별 디자인 패턴의 분류.

 

Abstract & Factory 패턴 정도는 내 개인 프로젝트에서도 간략히 써보긴 했지만...

업무적으론 "DB 연결 단일화" 목적의 싱글톤정도? 써보긴 했다만,

다른 사람들이 그렇게 만들었으니 나도 만든다는 의미가 컸었다.

 

이번엔 좀 제대로 파봐야지...