웹시스템개발 기말고사 핵심 정리 -2 디자인 패턴

 

팩토리 패턴

다른 클래스의 객체를 생성하는 클래스로 객체의 생성을 한 곳에서 관리하는 패턴

* 다른 클래스의 객체 : circle, square, triangle

* 생성을 한 곳 : shape factory

 

팩토리 메소드 패턴

추상 클래스를 상속한 클래스들이 컴포지션하는 추상 타입의 객체들을 메소드에서 생성하는 패턴

*컴포지션 : 객체 합성 (객체나 클래스를 더 복잡한 자료구조나 모듈로 묶는 행위)

'AnimalFactory' 추상 클래스와 그 아래 'DogFactory', 'CatFactory' 클래스가 각각 'Dog'와 'Cat' 객체를 생성하는 구조를 보여줍니다.

추상 팩토리 패턴

추상 메소드를 정의하는 패턴

어떤 추상 메소드? 추상 타입의 객체를 생성하는

 

전략 패턴

실행 중에 알고리즘(전략)을 선택할 수 있게 하는 패턴

 

커맨드 패턴 (command : 명령, 요청)

요청을 객체 속에 캡슐화

 

옵저버 패턴 (observer : 상태 변화 관찰)

한 객체의 상태변화에 따라 다른 객체들의 상태도 연동되도록 일대다 객체 의존 관계를 구성하는 패턴


퍼사드 패턴 (facade : 외부, 겉보기)

복잡한 내부 시스템 로직을 감추고 클라이언트가 쉽게 시스템에 접근할 수 있는 인터페이스 제공

* 인터페이스 : 내부 시스템의 세부 사항을 알 필요 없이 시스템의 기능을 간단하게 사용할 수 있도록 제공하는 단순화된 API나 클래스를 의미함. 

 

컴포지트 패턴 (composite : 복합체)

여러 개의 객체들로 이루어진 복합 객체와 단일객체를 클라이언트에서 구별없이 다루게 해주는 패턴

 

 

템플릿 메소드 패턴

 알고리즘의 일부 단계를 서브클래스화해서 알고리즘의 부분적 수정 및 재정의 쉽게 함