适配器模式
/**
*
* 隐式转换实现适配器模式
* 适配器模式可以通过隐士转换,将不符合预期的现有类转换为目标接口
* 该模式对集成已经存在的各个组件很有用。
*
* @author Yyyyy
* @version 1.0
*
**/
/**
* 现有的标准电源,输出220电压
*/
class PowerSource {
val outPut = "220V电压"
}
/**
* 需要的电源
*/
trait Charger {
def get5V: String
def get10V: String
}
/**
* 隐士转换类(变压器) 将标准电压转为输出电压,需要什么就重写什么方法即可
*/
object Transformer {
implicit def swap(p: PowerSource): Charger = new Charger {
override def get5V: String = ???
override def get10V: String = p.outPut+"已经转为10V,可以给电脑充电了"
}
}
/**
* 客户端调用
*/
object Client {
def main(args: Array[String]): Unit = {
import Transformer._
val source = new PowerSource()
println(source.get10V)
// println(source.get5V)
}
}
执行结果
220v电压已经转为10v 可以给电脑充电了
Process finished with exit code 0