It's just like pok    version4


의존성은 계산되어져야 한다 part 2

 | 

의존성 계산 방법을 주입에만 의존하면 (스프링 같은)처음 시작시 모든 의존성을 알고 있고 조정해주는 매니저가 없다면 의존성은 처음 주입을 하는 객체로 부터 늘어나기만 할것이다. 뿐만 아니라 생명주기가 일치하지 않는 객체를 사용해야하는 경우에 의존성 계산 관계가 복잡해진다.(사실 스프링은 주입하는 객체의 생명주기를 어플리케이션 컨텍스트와 일치시킨다) 이러한 복잡성과 생명주기 문제를 해결하기 위해서는 의존관계를 적절히 캡슐화하는 과정이 필요하다.

이러한 결론은 의존관계는 계산되어야한다는 주장과 상반되며, 특정 상황에서 의존성은 적절히 은닉되어야 한다는 모순적 결론이다.

따라서 모순적 상황을 트레이드오프로 적절선을 찾아 해결해야 하며 나는 그것을

  1. 객체를 상태를 가지는 객체와 가지지 않는 객체로 분리 설계한다.
  2. 상태를 가지는 객체에서 다른 객체를 의존할때는 객체간의 생명주기를 일치시킨다.
  3. 의존성이 있는 객체가 팩토리 메소드가 아닌 일반 메소드의 결과로 생성하는 객체는 상태에 보관하지 않는한 기본적으로 메쏘드 단위의 생명주기로 관리한다.
  4. 상태를 가지지 않는 객체는 메쏘드에서 의존관계를 발생시키고 소멸 시킨다.

정도로 단순화 해서 사용해보고 있다. 이러한 원칙이 쓸모가 있었는지는 나중에 알수 있겠지 ;)


프로그래밍 하드보일드