다시 시도해 보겠습니다. 나의 마지막 대답은 한 마디로 질문을 놓쳤다. 의사 코드를 사용
, 의존성 주입 함께 말한다 :
class Person
def Chat() {
someOperation("X","Y","Z")
end
end
...
Person.new().Chat()
과에와 :
class Person
initialize(a,b,c)
@a=a
@b=b
@c=c
end
def Chat()
someOperation(@a,@b,@c)
end
end
...
Person.new("X","Y","Z").Chat()
, 일반적으로 객체와 다른 파일에 전화를 넣어와. SCM 목적.
"X", "Y"또는 "Z"가 조롱 할 수 있는지 여부 (... 대신 객체 ... (!) ... (!) ...)와 아무 관계가 없습니다. DI가 좋은지. 정말. :-)
DI는 다른 많은 작업과 마찬가지로 Python이나 Ruby에서 훨씬 쉽습니다. Jörg가 말한 것처럼 스크립팅 방식이 더 많기 때문입니다. 또한 문화와 모델 및 상수로 상수와 어댑터가 채워지는 경향이 적습니다.
실용적인면에서 DI는 이러한 응용 프로그램 매개 변수, API 상수 및 팩토리를 개별 파일로 분리하는 첫 번째 단계로, 리비전 추적 보고서가 스파게티처럼 보이지 않게 만드는 데 도움이됩니다 ("AppController의 추가 체크 인은 구성을 변경하십시오 .. 아니면 코드를 업데이트 하시겠습니까 ...? ") 더 많은 정보를 제공하고 더 쉽게 읽을 수 있습니다.
나의 추천 :이 질문의 중복 것 같다 :-) ... DI를 사용
유지 .. http://stackoverflow.com/questions/2273683/why-are-ioc-containers- 불필요한 동적 언어/2308494 # 2308494 –