본문 바로가기
기타/자바 디자인패턴

[자바 디자인패턴] 1. Adapter 패턴

by 창이2 2022. 8. 13.

Adapter 패턴 이란?

 

이미 제공되어 있는 부분에서 개조를 통하여 필요한 것으로 만드는 패턴이다.

예를 들면 우리가 노트북을 사용할 때 어댑터를 연결해서 사용하는데 이 어댑터는

220V의 전압을 노트북에 맞게 변환해 주는 역할을 한다.

 

Adapter패턴에는 상속을 이용한 Adapter패턴과 위임을 사용한 Adapter패턴이 있다.

 

1. 상속을 이용한 Adapter패턴

상속을 이용한 패턴은 말 그대로 Adapter에서 이미 제공 되어있는 부분들을 상속하여 구현하는 방법이다.

fun main() {
    val adapter: Adapter = LabtopAdapter(12)
    adapter.flowElectric()
}

class LabtopAdapter(private val voltage: Int): Labtop(), Adapter{
    override fun flowElectric() {
        supplyEnergy(voltage)
    }
}

interface Adapter {
    fun flowElectric()
}

abstract class Labtop{
    fun supplyEnergy(voltage: Int){
        println(voltage)
    }
}

 

 

2. 위임을 이용한 Adapter패턴

위임을 이용한 Adapter패턴은 일부 기능을  인스턴스로 들고 해당 인스턴스에 기능을 위임하는 패턴이다.

fun main() {
    val labtop = Labtop()
    val adapter: Adapter = LabtopAdapter(12, labtop)
    adapter.flowElectric()
}

class LabtopAdapter(
    private val voltage: Int,
    private val labtop: Labtop
) : Adapter {

    override fun flowElectric() {
        labtop.supplyEnergy(voltage)
    }
}

interface Adapter {
    fun flowElectric()
}

class Labtop {
    fun supplyEnergy(voltage: Int) {
        println(voltage)
    }
}

 

 

3. 어댑터 패턴은 왜 쓰이는걸까?

어댑터 패턴은 기존의 소스코드를 수정하지 않고 새로운 Api를 만들어 낼 수 있다.

또한 두 기능에 대한 호환이 가능하도록 만들 수 있다.

 

 

참고 : 자바언어로 배우는 디자인패턴 입문

댓글