SSAFY11th-book-study / book-study

0 stars 0 forks source link

[7.2.3] 빈 초기화 작업 : 생성자 vs 별도의 초기화 메소드 #73

Open hj-k66 opened 2 months ago

hj-k66 commented 2 months ago

p576에서 생성자에서 예외가 발생할 수도 있는 복잡한 초기화 작업을 다루는 것은 좋지 않다고 설명합니다. 이에 따라 별도의 초기화 메소드를 사용하는 것이 바람직하다고 하는데, 이 두 방법의 차이가 뭔지, 왜 생성자에서 초기화 작업을 하면 안되는지가 잘 이해가 안갑니다. 다른 분들은 어떻게 이해하셨는지 궁금합니다!

a-young-kim commented 2 months ago

저는 생성자에서 예외가 발생할 시에 해당 객체 생성 후 init~~ 함수를 바로 호출하여 초기화 하는 것으로 이해하였습니다. 생성자에서 예외가 발생했을 경우에 다음과 같은 문제가 발생할 것 같습니다.

  1. 생성자에서 예외가 발생하여 객체가 불완전하게 생성되었을 때 다른 부분에서 해당 객체를 참조할 경우 오류가 발생할 것입니다.
  2. 생성자는 리턴 타입이 존재하지 않기 때문에 예외가 발생 시 예외를 처리하기 어려울 것 같습니다.
hj-k66 commented 2 months ago

클라이언트에서 예외가 발생하는지를 알아차리지 못할 수 있다는 불완전성 때문에 생성자에서 예외가 발생할 수 있는 일은 피하는 것이 좋다!