디자인 패턴 종류

simuruk wiki

{| class="wikitable" ! colspan="2" | 구분 ! 생성 !! 구조 !! 행위 |- | colspan="2" | 의미 | 객체의 생성 방식을 결정하는 패턴 | 객체를 구조와 합성에 관한 패턴 | 객체의 상호작용하는 방법과
책임을 분산하는 방법에 대한 패턴 |- | rowspan="2" | 범위 | 클래스 || 팩토리 메서드 || 어뎁터(클래스버전) || 인터프리터
템플릿 메서드 |- | 객체 | 추상 팩토리
빌더
프로토타입
싱글턴 | 어뎁터(객체버전)
브릿지
컴포지트
데코레이터
퍼사드
플라이웨이트
프록시 | 체인 오브 리스판시블
커멘드
인터프리터
메디에이터
메멘토
옵저버
스테이트
스트레티지
비지터 |- |}


{| class="wikitable" ! colspan="3" | 생성 패턴 |- | Singleton || 하나의 인스턴스만 존재 하는 것 |- | Abstract Factory || 객체들의 집합을 생성할 수 있는 인터페이스를 제공 |- | Factory Method || 객체를 생성하는 인터페이스는 미리 정의 인스턴스 만드는 시점은 서브클래스로 미룸 |- | Builder || 복합 객체의 생성과정과 표한 방법을 분리 하여 동일한 생성 절차에 다른 표현 결과 |- | prototype || 런타임에서 원형을 복사하여 또 다른 객체 생성 |}


{| class="wikitable" ! colspan="3" | 구조 패턴 |- | 어뎁터 || 다른 인터페이스로 변환, 호환성 클래스 |- | 브릿지 || 책임 분리 new CircleShp(1, 2, new DrawingAPI1()) |- | 컴포지트 || 단일 객체, 복합객체 동일하게 관리 dict와 file을 둘다 가짐 |- | 디코레이터 || super를 통해 동적으로 첨가 return 4500+super.cost(); |- | 퍼사드 || 내부일 간략화, 외관패턴 |- | 플라이웨이트 || 데이터 공유 외부에 자료 |- | 프록시 || 본인과 대리인, 둘다 있어서 기능 제공 |}


{| class="wikitable" ! colspan="3" | 행위 패턴 |- | 코멘드 || 명령, 수신, 발동 요청을 나중에 실행 |- | 인터프리터 || 문법 해석, 정의 |- | 이터레이터 || 반복하여 순차적으로 내부 노출없이 요소들을 접근 |- | 메디에이터 || N:M을 N:1로 중재 |- | 템플렛 || 제네랄 |- | 비지터 || 방문자, 기능만 추가, 비지터 기능을 엘리먼트가 씀 |- | 스테이트 || 행동을 스테이트에게 전달 상태변경 |- | 스트레트지 || 알고리즘 캡슐화, 인터페이스구현 |- | 옵저버 || observers에게 notify |- | 체인 오브 리스판시블 || 요청을 받을 수 있는 객체를 연쇄적으로 묶고, 실제 요청을 처리할 객체를 만날 때까지 요청을 전달 |- | 메멘토 || 전체 속성 저장 |}

참고 링크


댓글을 추가합니다
simuruk wiki은(는) 모든 댓글을 환영합니다. 익명을 원하지 않으면 등록하거나 로그인하세요. 무료입니다.