210224 수 TIL

bongf·2021년 2월 24일
0

TIL

목록 보기
3/40

Done


Learned

Singleton

  • 코드리뷰에 싱글톤 이야기가 나와서 아주 짧게 개념만 학습했다.
  • 클래스당 단 하나의 인스턴스만 생성하도록 제한해주는 것
public final class ClassSingleton {

    private static ClassSingleton INSTANCE;
    private String info = "Initial info class";
    
    private ClassSingleton() {        
    }
    
    public static ClassSingleton getInstance() {
        if(INSTANCE == null) {
            INSTANCE = new ClassSingleton();
        }
        
        return INSTANCE;
    }

    // getters and setters
}
  • enum으로도 사용이 가능하다
public enum EnumSingleton {
    
    INSTANCE("Initial class info"); 
 
    private String info;
 
    private EnumSingleton(String info) {
        this.info = info;
    }
 
    public EnumSingleton getInstance() {
        return INSTANCE;
    }
    
    // getters and setters
}

기타

git


Good

  • 피드백 받은 부분을 이해해보려고 노력하고 미션에 적용해 보려고 했다.

Bad

  • 낮동안에는 집중이 잘 안되었다.

Feeling

  • 미션5 진행 속도가 느리다.
  • 코드리뷰와 미션을 함께 적용하다가 책임을 분산하기 위해 클래스를 분리하는 개념을 이해하는 데 시간이 오래 걸렸다
    • A클래스와 AHelper 클래스가 있다고 할 때, 경우에 따라 AHelper의 객체를 사용하기도 하고 static으로 이용하기도 한다.
    • AHelper의 객체를 사용한다고 했을 때, 예를 들어, A클래스에는 ArrayList obj가 선언되어 있고, AHelper가 ArrayList을 인스턴스 변수로 갖고 있다고 하면
    • obj는 ArrayList과 관련 메소드 및 멤버변수를 갖는 Ahelper 객체를 배열로 받게 된다
    • 이는 각각의 ArrayList에게 행해지던 일련의 작업의 책임이 AHelper로 넘어가게 된다.
  • 그런데 여전히 헷갈리는 건 A클래스에 ArrayList<ArrayList>을 선언하고 관련 메소드들만 static으로 AHelper에게 넘겨주면 그 구분이 애매해져서 이렇게 하는 것인가? 아니면 static 변수가 많아져 메모리 부담이 커져서일까? 아직 잘 모르겠다.
profile
spring, java학습

0개의 댓글