디자인패턴
느슨한 결합과 강한 결합
hik14
2022. 7. 18. 15:21
강한 결합
- 강하게 결합된 객체(Tightly Coupled Object)는 결합된 객체에 대한 상당히 많은 정보를 필요한다.
- 타이트하게 연견된 애플리케이션에서 하나의 객체를 변경하는 것은 많은 다른 부분을 변경을 요구한다
class Computer(
val cpu: IntelCpu,
val memory: SamsungMemory,
){
. . .
}
class IntelCpu()
class SamsungMemory()
느슨한 결합
- 인터페이스를 이용한 의존성 역전
- 느슨한 결합은 하나의 콤포넌트의 변경이 다른 콤포넌트들의 변경을 요구하는 위험을 줄이는 것을 목적으로 하는 시스템에서 콤포넌트 간의 내부 의존성을 줄이는 것을 추구하는 디자인 목표다.
class Computer(
val cpu: CPU,
val memory: SamsungMemory,
){
. . .
}
interface CPU{
fun calculate()
}
class IntelCpu: CPU{
override fun calculate() {
...
}
}
class AMDCpu: CPU{
override fun calculate() {
...
}
}
class SamsungMemory()