2010-02-03 5 views
48

레일즈에 MVC 접근법이 있다는 사실은 의존성 주입이 있다는 것을 의미합니까?레일스에 종속성 삽입이 있습니까?

또는 Rails에서 종속성 삽입에 대해 언급하지 않는 이유가 있습니까?

레일스에 의존성 삽입이있는 경우 어떻게 구성됩니까?

+0

아주 좋은 질문입니다. 대답을 읽으면 많은 것을 배웠습니다. – Phil

답변

9

루비에서는 일반적으로 의존성 주입이 필요하지 않습니다. Jamis Buck blogged extensively 이유에 대해. 읽기 좋은 가치가 있습니다.

+39

Jamis는 실제로 Java와 함께 사용되는 무거운 수동 DI 프레임 워크가 필요 없다고 말하고있었습니다. 그는 Ruby에서 불필요하다고 말하지 않았습니다. 반대로 DI는 루비에서 결합을 줄이고 테스트 가능성을 향상시키는 데 사용할 수 있습니다. 그것은 단지 필요한 것은 아닙니다. – scottburton11

+8

블로그 작성자는 DI 프레임 워크가 아니라 매일 DI를 사용한다고 말합니다. –

+0

멋진 기사였습니다. Ruby를 사용하는 모든 사람들을 읽어야합니다. – Flavia

8

종속성 삽입은 패러다임이므로 모든 객체 지향 언어에 존재합니다.

루비 DI 프레임 워크가 있는지 여부 - 확인이 this question

0

당신이 루비 그런 일을 필요로하지 않는다는 것을 말하고 싶지만 ...하지만 당신이 정말로 원하는 경우, 어떤 사람들은 workarounds 있습니다.

10

IoC는 큰 해머이지만 DI는 Ruby/Rails에서 매일 발생합니다. 언제든지 :

def initialize(model_klass) 
    @model_klass = model_klass 
end 

이것은 DI입니다. 이 패러다임은 Rails 소스 코드의 여러 곳에서 사용된다. 예를 들어, Railties 보석 자체는 대부분 DI 엔진입니다. ORM, 다양한 플러그인 구성 및 생성기를 주입 할 수 있습니다.

종속성 주입에는 크고 무서운 이름이 있지만 실행 시간 동안 종속성을 주입하는 방법으로 클래스 종속성을 분리하는 것만으로 충분합니다.

행동/코드를 어딘가에 연결해야하는 경우 사용하는 언어는 중요하지 않으며 아마도 사용하고있을 것입니다.

관련 문제