반응형

#디자인 패턴(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

반응형

+ Recent posts