2012-05-19 4 views
2

나는 비슷한 질문을 찾지 못했고 이미 존재한다면 사과드립니다.의존성 삽입 또는 범위 해결 연산자?

제 시스템에서는 전체 시스템에서 많은 작업을 쉽게 처리 할 수있는 많은 함수 라이브러리가 필요합니다. 전자 메일을 검증 할 수 있습니다. 함수를 만들 수있는 경우 매번 정규식을 작성해야 할 이유가 없으므로 일을 변경하고 오류를 수정해야합니다.

나는 Files_Tools라는 클래스를 작성한다고 말합니다.

이 클래스의 인스턴스가이 클래스의 함수를 필요로하는 객체에 삽입되는 종속성을 통해 둘 다 작동하도록 만들 수 있습니다. 그러나 정적 함수가있는 Files_Tools 클래스를 작성하고 범위 분석 연산자를 사용하여 액세스 할 수도 있습니다. 그러나 DI (의존성 주입)에 관한 주요 사항 중 하나가 "글로벌 사용"을 피하는 것임을 이해하게되었습니다. 그래서 내 논리는 DI 접근 방식을 사용하라고 지시합니다. 그러나, 나는 아직도 이런 식으로하고있는 "옳은"느낌이 들지 않습니다.

제 질문은 - 시스템의 도구 집합을 만드는 가장 올바른 방법으로 간주되는 사항은 무엇입니까? 우선, 단순한 함수 대신 클래스로 만드는 것입니까? 그리고 수업이 정말로 있다면, 나는 SRO 나 DI를 목표로해야합니까?

나는이 질문에 대한 명확한 답이 없을 것이라고 생각하지만, 다른 많은 코더들도 그랬던 것처럼 내가 트랙에서 멀어 졌는지 알기를 원합니다. 사전에

감사합니다 :)

답변

2

DI는 쉽게 장치에 주입 된 클래스에 의존하지 않고 클래스와 메소드를 테스트 할 수 있습니다 ... 당신이 주입 된 개체를 조롱하고 테스트에 맞게 자사의 수익을 조작 할 수 있습니다. 범위 분석을 통해이 종속성이 유지되므로 테스트가 완전히 격리되지 않습니다.

많은 초기 프로젝트에서 이러한 기능에 정적 클래스를 사용하고 있으며 DI 테스트를 사용하지 않았기 때문에 6 년 동안 단위 테스트를 작성하는 것이 이제는 어려운 일이되었습니다.