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를 만들어 낼 수 있다.
또한 두 기능에 대한 호환이 가능하도록 만들 수 있다.
참고 : 자바언어로 배우는 디자인패턴 입문
'기타 > 자바 디자인패턴' 카테고리의 다른 글
[자바 디자인패턴] 5. Dynamic Proxy 패턴 (0) | 2023.03.01 |
---|---|
[자바 디자인패턴] 4. Proxy 패턴 (0) | 2023.02.12 |
[자바 디자인패턴] 3. Factory Method 패턴 (0) | 2022.08.14 |
[자바 디자인패턴] 2. Template Method 패턴 (0) | 2022.08.14 |
댓글