스프링 컨텍스트에서 싱글 톤을 반환하는 전역 객체를 갖는 것이 디자인 관점에서 잘못 되었습니까?스프링 싱글 톤을 반환하기위한 전역 객체
방금 새로운 장소에서 작업을 시작했으며, DAO는 모두 DAOUtils라는 글로벌 객체를 통해 액세스됩니다. 여기서 DAO는 스프링 컨텍스트에서 싱글 톤 DAO 빈을 가져옵니다. 예를 들어 구매 주문서를 저장하려는 경우
DAOUtils.getPurchaseOrderDao(). savePurchaseOrder (po);
등등.
필자는 필요에 따라 DAO를 필요로하는 각 클래스에 주입하는 데 익숙해 왔기 때문에 약간 충격을 받았습니다. 디자인 관점에서 잘못된 점이 있습니까? 그렇다면 왜 그것이 나쁜 생각인지 설명 할 수 있습니까?
실제 DAOUtils 클래스를 호출하지 못하도록하는 방법이 없으므로 단위 테스트가 어렵다는 것을 알 수 있습니다. 나는 이것이 단단한 커플 링으로 인한 문제로 설명 될 수 있다고 생각합니다.
당신은 맞습니다. 의존성 주입이 무엇인지 이해하지 않고 이것을 디자인 한 사람은 Spring을 사용했습니다. –
정적 도구 클래스를 사용하지 않는 것이 가장 좋고 도메인이 아닌 개체에 "new"를 사용하지 않는 것이 가장 좋습니다. –
또한 Clen Code를 읽습니다. * Util 클래스를 만드는 것은 mudball에 대한 길입니다. 새로운 DAO를 클래스에 추가해야합니다. 이 Util 클래스는별로 좋지 않은 모든 DAO에 의존합니다. –