CleanCode

Clean Code 짜기12

김대근'IT공부 2019. 11. 12. 13:28

시스템

체계적이고 탄탄한 시스템을 만들고 싶다면 

설정 논리는 일반 실행 논리와 분리해야 모듈성이 높아진다.

또한 주요 의존성을 해소하기 위한 방식, 즉 전반적이며 일관적인 방식도 필요하다

 

 

Main 분리

시스템 생성과 시스템 사용을 분리하는 방법

생성과 관련한 코드는 모두 main이나 main이 호출하는 묘듈로 옮기고,

나머지 시스템은 모든 객체가 생성되었고 모든 의존성이 연결되었다고 가정한다.

제어 흐름은 main 함수에서 시스템에 필요한 객체를 생성한 후 애플리케이션에 넘긴다.

애플리케이션은 main이나 객체가 생성되는 과정을 모르지만 모든 객체가 적절히 생성되었다고 가정한다.

 

 

때로는 객체가 생성되는 시점을 애플리케이션이 결정할 필요도 생긴다.

모든 의존성이 main에서 OrderProcessing 애플리케이션으로 향한다.

즉, OrderProcessing 애플리케이션은 LineItem이 생성되는 구체적인 방법을 모른다.

main쪽에 LineItemFactoryImplementation이 방법을 아는데

그럼에도 OrderProcessing 애플리케이션은 LineItem 인스턴스가 생성되는 시점을 완벽하게 통제하며,

OrderProcessing 애플리케이션에서만 사용하는 생성자 인수도 넘길 수 있다.

 

 

참고한 책

Clean Code(클린코드)

 

반응형