🚀 bitcamp TIL (21.07.26)
TIL

🚀 bitcamp TIL (21.07.26)

📌 21일차(2021-07-26,월)

  • 실전 프로젝트(eomcs-java-project)
    • 07-a. 의존 객체 다루기 : 인스턴스 필드에 직접 주입
    • 07-b. 의존 객체 다루기 : 생성자로 주입

📌 알게 된 점

  • 문맥에 따라 클라이언트가 다르게 쓰일 수 있다.

  • 객체 != 인스턴스 (무조건 이렇게 단편적으로 외우지 말라.)

  • 의존객체를 인스턴스와 연결시키는데 클래스로 메서드를 호출하던 인스턴스로 호출하던 다 의존객체다.

  • 그림은 중요한걸 강조하기 위해서 그리는거다

  • 모든 상세한것은 그리는게 아냐 핵심은 강조하고 싶은것을 그려라

  • 일시적인 의존관계(dependency) / 지속적인 의존관계(association)

  • 여러 메서드에서 사용하는 의존객체라면 일시적인 관계(파라미터)가 아니라 지속적인 관계(인스턴스필드)로 설정하는게 좋다.

  • 메서드 파라미터 - > 인스턴스 필드

  • 의존객체를 넘긴다는것은 데이터를 넘기는 것이다.

  • 의존객체를 받는다는것은 메서드를 실행할 때 그 데이터가 필요하다는 것이다.

  • ex) projectHandler 만들고 싶어? 그러면 memberHandler 반드시 주입해 사용할거니까

  • 외부에서 인스턴스 변수에 직접 접근할 필요가 없다 public -> default

  • 변수로 직접 접근할 수 없고 생성자를 통해 접근하도록 한다.

  • 왜 그 문법이 쓰이는지 생각하면서 스텝 바이 스텝으로 진행하자.

  1. 의존 객체를 주입받을 때 특정 메서드에서 한번만 쓸 의존객체라면 파라미터로 받으면되지만
  2. 다른 메서드(여러개의 메서드)에서도 쓰는 의존 객체라면 파라미터로 받지 말고 미리 인스턴스 변수에 주입해서 쓰면 된다.
  3. 하지만 일반적인 주소로 주입하다보면 개발자들이 잊어버릴 수 있다. 막상 실행을 시켜보면 nullPointException 발생
  4. 실수를 방지하기 위해서 등장한 문법이 생성자이다. 심지어 내가 만든것도 나중에 잊어버린다.
  5. 생성자는 의존객체를 강제로 주입시키게 할 수 있다.
  6. 입력받고 싶은 것을 생성자의 파라미터에 적고 초기화시킨다.
  7. 주입하고 싶은 인스턴스 변수에 주입한다.
    그러면 레퍼런스변수는 공개할 필요 없지.
  • 변수를 따로따로 만들지말고 묶어 한 덩어리로 만든다. 다루기 쉬워진다.

  • static 메서드는 같은 static에 접근할 수 있다.

  • 메서드 = 인스턴스를 받을 수 있고 인스턴스를 리턴할 수 있다.

  • 주소를 잃어버리면 다시 연결시킬 수 없다.

  • 메인메서드 안에 있는 클래스는 컴파일 하면 별도로 분리되어서 나온다.

  • 메서드 호출할 때 마다 클래스가 실행되지는 않는다.

    • ex) exam0330.class / exam0330$score.class
  • package member class vs Nested class

  • 중첩 클래스의 목적은 사용범위를 제한하는 것이다.

  • 인스턴스 배열은 없다.

'TIL' 카테고리의 다른 글

🚀 bitcamp TIL (21.07.28)  (0) 2021.07.28
🚀 bitcamp TIL (21.07.27)  (0) 2021.07.27
🚀 bitcamp TIL (21.07.23)  (0) 2021.07.23
🚀 bitcamp TIL (21.07.22)  (0) 2021.07.22
🚀 bitcamp TIL (21.07.21)  (0) 2021.07.22