Notice
Recent Posts
Recent Comments
Link
250x250
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 코틀린
- springboot
- Kotlin
- netty
- 채팅
- 클래스
- 팀프로젝트
- Java
- 네티 서버
- Spring Boot
- service
- controller
- Security
- JWT
- react
- 자료형
- 기초설정
- axios
- 백엔드 설정
- recoil
- Spring
- 스프링부트
- MySQL
- 배열
- Repository
- 네티 클라이언트
- 프로젝트
- toyproject
- 도커
- 자바
Archives
- Today
- Total
hyuko
생성디자인 패턴 본문
728x90
반응형
팩토리 메서드 패턴
팩토리 메서드는 부모 클래스에서 객체들을 생성할 수 있는 인터페이스를 제공하지만,
자식 클래스들이 생성될 객체들의 유형을 변경할 수 있도록 해주는 생성 패턴이다.
예를들어 , 기본적으로 이러한 팩토리 메서드 패턴을 모른다고 해보자!!
택배관련 물류 어플리케이션이 있다고 했을 때 , 하나의 어플리케이션에서 트럭이라는 운송수단 클래스로
모든 과정들이 이어 붙여져 있다고 생각해봅시다.
이러한 상황에서 만약에 해외로 물류들을 보낸다거나 제주도등 섬으로 보낸다고 하였을 때
선박이나 비행기등 여러가지의 운송수단들이 늘어날 수 있는 상황이 생기고 그럴 때 마다 클래스 정보들을
이어 붙여야 하기 때문에 전체 코드가 바뀌게 됩니다.
이러한 문제점 들 때문에 팩토리 메서드 패턴을 이용해서 해결할 수 있는데
정의에서 말한 것 처럼 부모클래스 하나를 생성해서 메서드를 만들고 자식 클래스에서
이를 오버라이드하여 새로 재정의 해서 쓰는 방법이다.
본래는 new 연산자를 이용하여 전부 각각 생성을 해서 쓰던 패턴을
메서드의 호출로 대체를해서 쓰는 것이다.
Interface 로 운송수단 이라는 하나의 부모 인터페이스를
만들어주고 이 Interface에는 delivery라는 메서드 하나를 포함한다.
그리고 Truck 과 Ship 이라는 클래스가 이 인터페이스를
Implements 해서 각각 delivery 메서드를
오버라이드 하여 쓰게 되면
객체가 각각 생성해서 쓰긴 해야하지만
하나의 부모안에서 똑같은 메소드 하나로 통일하여
Ship 이아니라 비행기가 되더라도 유지보수가 용이해집니다.
※ 장점과 단점
1. 단일 책임 원칙, 코드를 더 쉽게 유지관리 가능하다.
2. 개방/ 폐쇄원칭 기존 코드를 훼손하지 않으면서 새로운 유형의 코드를 도입할 수 있다.
단점
1. 패턴을 구현하기 위해서 많은 자식 클래스들을 동원하여 코드가 복잡해질 수 있는 단점이 있습니다.
728x90
반응형
'CS > 디자인패턴' 카테고리의 다른 글
디자인 패턴에 대해서 ... (0) | 2023.04.25 |
---|