#디자인 패턴(Design_pattern)
# Factory_method // 인스턴스 생성과정이 복잡할 때 사용하는 설계 기법
기존에는 new로 인스턴스 생성 후, 값을 넣어 사용했다면,
switch문 등을 이용하여 자주 사용되는 인스턴스들을 값에 해당하는 셋팅을 하게끔 만든다.
1) 객체 생성 class 정의 // Factory_method 적용 전과 동일
class Car2 {
String model;
int cc;
boolean sunroof;
}
2) 인스턴스를 생성해주는 메서드를 정의
public static Car2 create(String product) {
Car2 c = new Car2();
switch (product) {
case "tc":
c.model = "티코";
c.cc = 890;
c.sunroof = false;
break;
case "tcg":
c.model = "티코 골드";
c.cc = 890;
c.sunroof = true;
break;
default:
return null;
}
return c;
}
}
3. 객체 생성 후 필요 값 입력 // Switch문으로 바로 "tc", "tcg"에 맞는 인스턴스 기본 셋팅 가능
Car2 c1 = Car2Factory.create("tc");
Car2 c2 = Car2Factory.create("tcg");
# Iterator(이터레이터) // 값을 꺼낼때 일관된 방식으로 하게끔 하는 설계 기법
# Observer
# Singleton(싱글톤) // 객체를 하나만 생성하게끔 강제하는 설계 기법
1) 인스턴스 주소를 보관할 클래스 필드를 선언한다. (private static A instance)
2) 생성자를 정의하고 private으로 선언하여 비공개로 만들어라. (private A())
// => 비공개 생성자를 외부에서 호출할 수 없다.
// => 오직 내부에서만 호출할 수 있다.
3) 인스턴스를 생성해주는 메서드를 static으로 정의한다.
public static 클래스명 getInstance() {
if (A.instance == null) {
// 아직 인스턴스를 생성한 적이 없다면 즉시 인스턴스를 생성한다.
A.instance = new A();
}
// 기존에 변수에 저장된 인스턴스 주소를 리턴한다.
return A.instance;
}
# 알고리즘(algorithm.data_structure)
#ArrayList -> #Project v19_1
#LinkedList -> #Project v20
#Queue -> #Project v22
#Stack -> #Project v21
'IT Developer > Bitcamp' 카테고리의 다른 글
비트캠프 프론트엔드 및 백엔드 개발자 SQL (0) | 2020.02.18 |
---|---|
비트캠프 프론트엔드 및 백엔드 개발자 #Project v26 ~ v42 (0) | 2020.01.21 |
비트캠프 프론트엔드 및 백엔드 개발자 #Project v1 ~ v25 (0) | 2020.01.13 |
비트캠프 프론트엔드 및 벡엔드 개발자 annotation, concurrent, corelib, exception, generic, httpcomponents, io (0) | 2020.01.06 |
비트캠프 프론트엔드 및 백엔드 개발자 oop Week 04~07 (Day 17 ~ Day 37) #강남학원 (19.12.24.~20.01.21) (0) | 2019.12.24 |
비트캠프 프론트엔드 및 백엔드 개발자 basic Week 03~04 (Day 11 ~ Day 16) #강남학원 (19.12.16.~12.23) (0) | 2019.12.17 |
비트캠프 프론트엔드 및 백엔드 준비단계 개발자 Week 01~02 (Day 01 ~ Day 10) #강남학원 (19.12.02~12.13) (0) | 2019.12.04 |
비트캠프 기초특강 #종로학원 (19.11.18~11.22) (0) | 2019.12.04 |