💡생성 패턴이란?
생성 패턴이란 객체를 만드는 절차를 추상화하는 패턴
💡생성 패턴 특징
시스템이 어떤 구체적인 클래스를 사용하는지에 대한 정보를 캡슐화
특정 객체가 생성되거나 변경되어도 프로그램 구조에 크게 영향을 받지 않음 (유연성)
💡생성 패턴 종류
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 |