오늘도 더 나은 코드를 작성하였습니까?

느슨한 결합과 강한 결합 본문

디자인패턴

느슨한 결합과 강한 결합

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()

'디자인패턴' 카테고리의 다른 글

Abstract Factory Pattern  (0) 2022.08.01
Decorator Pattern (데코레이터 패턴)  (0) 2022.07.25
Observer pattern(옵저버 패턴)  (0) 2022.07.18
전략패턴(Strategy Pattern)  (0) 2022.07.11
Dependency Inversion Principle  (0) 2021.12.28