Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 반려견 더위
- 샤로수길 맛집
- 부산 맛집
- 동인천 맛집
- 샤로수길 데이트
- 국비지원 예습
- 강아지종류
- 닥스훈트
- 반려견 열사병
- 자동화봇
- 티켓팅매크로
- 홀리스틱 유기농
- 서울대입구 맛집
- 쿠팡매크로
- 쿠팡메크로
- 강아지
- 반려견 사료등급
- 강아지 더위
- 반려견 홀리스틱
- 강아지 열사병
- 반려견
- 강아지 유기농
- 반려견 유기농 사료
- 반려견 종류
- 강아지 홀리스틱
- 신포동 맛집
- 티켓팅메크로
- 반려견 유기농
- 강아지 유기농 사료
- 강아지 종류
Archives
- Today
- Total
심심한잉여의 잡동사니
[디자인 패턴]추상 팩토리 패턴 (Abstract Factory Pattern) 이란? 본문
반응형
추상 팩토리 패턴(Abstract Factory Pattern)이란?
서로 관련이 있는 객체들을 통쨰로 묶어서 팩토리 클래스로 만들고 이들 팩토리를 조건에 따라 생성하도록 다시 팩토리를 만들어 객체를 생성하는 패턴
간단하게 보자면 팩토리 메서드 패턴을 한 단계 더 캡슐화한 방식이라 볼 수 있다.
public class Phone {
private String prodName;
public void setProdName(String prodName){
this.prodName = prodName;
}
public String getProdName(){
return this.prodName;
}
}
public class ApplePhone implements Phone{
public ApplePhone(){
super.setProdName = "iPhone";
}
}
public class SamsungPhone implements Phone{
public SamsungPhone(){
super.setProdName = "galaxyPhone";
}
}
public class PhoneFactory{
public Phone createPhone(String brand){
Phone phone = null;
switch(brand){
case "Samsung" :
phone = new SamsungPhone();
break;
case "Apple" :
phone = new ApplePhone();
break;
}
return phone;
}
}
public class Test{
public static void main(String args[]){
PhoneFactory test = new PhoneFactory();
System.out.print(test.createPhone.getProdName());
}
}
위 코드와 같이 클래스들이 정의되어 있다고 했을 때 브랜드에 맞게 객체를 생성되게 할 건지 결정 후 구현하게 하는 것을 뜻한다.
더 깊은 깊이(Depth)를 가져도 되며 이에 따라 코드가 더 길어질 것을 생각해야한다.
현재까지 구현한 것으로 끝낸다면 팩토리 메서드 패턴에 가깝다.
public class PackgeFactory{
public package createPackge(String brand){
Package package = null;
switch(brand){
case "Samsung" :
package = new SamsungPackage();
break;
case "Apple" :
package = new ApplePackage();
break;
}
return package;
}
}
위와 같이 Phone 외에도 다른 객체가 있다 가정했을 경우 하나의 패키지로 묶어 만드는것을 추상메서드패턴이라고 할 수 있다.
간단히 정리하면 패턴 적용 전에는 하나하나 Phone, case 등의 구성품마다 팩토리를 만들어 어떤 객체를 형성했지만 추상 팩토리 패턴을 적용하게 되면 관련된 객체들을 한번에 캡슐화하여 팩토리를 만들어 일관된 객체를 생성하도록 한 것이다.
반응형
'코딩일기 > 자료 구조' 카테고리의 다른 글
[자료구조]덱/Dequeue(데크) Doubly-ended Queue (0) | 2023.02.20 |
---|---|
[디자인 패턴] 싱글톤 패턴(Singleton)이란? (0) | 2022.11.28 |
[디자인 패턴] 디자인 패턴이란 (0) | 2022.11.10 |
[자료구조] 큐(Queue) (feat. java) (0) | 2022.05.01 |
[자료구조] 스택(Stack)이란?(feat. Java) (0) | 2022.04.30 |