//Ex1: (passing by object)
class A {
}
class B {
void foo(A a) {
<do something with a>
}
}
//Ex2: (composition)
class C {
A a
void foo(){
<do something with a>
}
}
제 질문은 어떤 패턴이 더 낮은 커플 링입니까? 그리고 어떤 패턴이 현실 세계에서 더 선호됩니까?자바에서 결합력이 낮은 패턴 : 객체를 메소드에 전달하거나 컴포지션을 사용합니까?
상황에 따라 각각의 장점/약점이 있습니다 –
개체를 전달하면 모든 메서드 호출마다 다른 개체를 전달할 수 있습니다. 따라서 속성을 갖는 것과 의미 적으로 차이가 있습니다. "결합력 저하"는 무엇을 의미합니까, btw? 동일한 문제를 풀려고하면 속성을 사용하여 다른 A를 먼저 사용하기 전에 항상 세터를 호출해야합니다. –
클래스 B를 선호하지만 foo에 A를주는 대신 A로 구현 된 인터페이스를 제공 할 것입니다. 그런 식으로 결합 될 가능성은 낮습니다. –