例如需要对220V的电压(适配者) , 通过适配器, 转换成 5V 的电压(目标)
对象适配器模式使用较多。
1. Adaptee角色(适配者,需要适配的接口)
class Volt220 {
fun getVolt20():Int{
return 220;
}
}
2. Target 角色 (目标)
interface FiveVolt {
fun getVolt5(): Int
}
3. Adpater(适配器)
class VoltAdapter(private val volt220: Volt220) : FiveVolt {
// //没有用到???
// fun getVolt220(): Int{
// return volt220.getVolt20()
// }
override fun getVolt5(): Int {
//return 5
return volt220.getVolt20() / 44
}
}
聚合了一个适配者, 通过它获取输入的值 然后再处理,返回目标需要的 5V
(根据输入, 输出统一)
4. 测试代码
@Test
fun testObjectAdapter(){
Log.d(TAG, "====================ObjectAdapter====================")
var voltAdapter = VoltAdapter(Volt220())
Log.d(TAG, "output volt = ${voltAdapter.getVolt5()}")
}
5. 输出结果
11-24 16:21:02.707 D DesignPattern: ====================ObjectAdapter====================
11-24 16:21:02.707 D DesignPattern: output volt = 5

本文探讨了如何使用对象适配器模式实现从220V电压转换为5V电压的过程,通过创建一个适配器类将Volt220接口转换为FiveVolt接口,实现实现细节和测试案例。
1046

被折叠的 条评论
为什么被折叠?



