☁️정리/❄️CS

[CS] 디자인 패턴_생성패턴

뿌야._. 2023. 7. 12. 23:30

💡생성 패턴이란?

생성 패턴이란 객체를 만드는 절차를 추상화하는 패턴

 

💡생성 패턴 특징

시스템이 어떤 구체적인 클래스를 사용하는지에 대한 정보를 캡슐화

특정 객체가 생성되거나 변경되어도 프로그램 구조에 크게 영향을 받지 않음 (유연성)

 

💡생성 패턴 종류

Singleton

Prototype

Factory Methods

Builder

Abstract Factory

 

💡Singleton 패턴

정의 

: 하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴으로 보통 데이트베이스 연결 모듈에 많이 사용함

: 하나의 인스턴스를 만들어 놓고 해당 객체를 다른 모듈들이 공유하면서 사용

 

장점

: 인스턴스를 생성할 때 드는 비용이 줄어듦

 

단점

: 의존성이 높아짐

 

의존성 주입
: 의존성 낮추는 방법으로 메인 모듈과 다른 하위 모듈 사이에 의존성 주입자를 통해 간접적으로 의존성을 주입하는 방법

 

💡Prototype 패턴

정의 

: 기존 인스턴스를 복제하여 새로운 인스턴스를 만드는 방법

 

장점

: 복잡한 객체를 만드는 과정을 숨길 수 있음

: 새 인스턴스를 만드는 것보다 기존 인스턴스를 복제하는 것이 비용적인 면에서 효율적일 수 있음

 

단점

: 복잡한 인스턴스를 만드는 과정 자체가 복잡할 수 있음

 

💡Factory Method 패턴

정의 

: 인스턴스 생성을 서브 클래스에서 결정

 

장점

: 확장에 열려있고 수정에 닫혀있음

: 코드가 간결해짐

 

단점

: 클래스가 많아짐

 

💡Builder 패턴

정의 

: 동일한 절차에서도 다양한 구성의 인스턴스를 만드는 방법 제공

 

장점

: 불필요한 생성자 제거

: 가독성

: 객체 불변성

 

단점

: 인스턴스를 생성하기 전에 반드시 빌더 생성해야 함

: 관리해야 할 클래스가 많아지며 구조가 복잡해짐

 

💡Abstract Factory 패턴

정의 

: 서로 관련 있는 객체들을 묶어서 인터페이스로 제공하는 패턴

 

장점

: 객체를 생성하는 코드를 분리하여 결합도를 낮출 수 있음

 

단점

: 객체가 늘어날 때마다 클래스가 증가하여 코드의 복잡성이 증가

'☁️정리 > ❄️CS' 카테고리의 다른 글

[CS] 프로그래밍 패러다임  (0) 2023.08.23
[CS] MVC 패턴  (0) 2023.08.21
[CS] 디자인 패턴_행위패턴  (0) 2023.08.18
[CS] 디자인 패턴_구조패턴  (0) 2023.07.13
[CS] 디자인 패턴  (0) 2023.07.12