跟我一起学“仓颉”设计模式-适配器模式
本章为大家详细的介绍了仓颉设计模式中适配器模式的内容。
·
目录
一、适配器模式
适配器模式:将一个类的接口转换成客户希望的另一个接口。适配器模式让那些接口不兼容的类可以一起工作(结构型)。
适配器模式角色如下:
- 目标抽象类:目标抽象类定义客户所需要的接口;
- 适配器类:调用另一个接口,作为一个转换器,对适配者和目标抽象类进行适配;
- 适配者类:适配者是被适配的角色,它定义了一个已经存在的接口,这个接口需要适配,适配者类是具体类。
二、实现
在src目录下,新建一个adapter文件夹,在该文件夹下新建一个adapter.cj文件和adapter.drawio文件。
类图

核心代码
package DesignPattern.adapter
// 电源接口
public abstract class PowerInterface {
protected var v: Int64 = 0
public func setV(): Unit
}
// 目标类
public class Computer {
public Computer(private let powerInterface: PowerInterface){}
public func showV() {
println("电脑电压为: ${this.powerInterface.v}")
}
}
// 适配者
public class Power {
private var v: Int64 = 220
public func get220V() {
return this.v
}
}
// 适配器
public class PowerAdapter <: PowerInterface {
public PowerAdapter(private let power: Power) {}
public override func setV() {
// 获取电源电压
var v = this.power.get220V()
// 进行电压转换
v = v / 11
// 电压提供给电脑
super.v = v
}
}
测试代码
package DesignPattern
import DesignPattern.adapter.*
main(): Int64 {
// 电源
let power = Power()
// 电源适配器
let powerAdapter = PowerAdapter(power)
// 电源转换
powerAdapter.setV()
// 电脑接上适配器
let computer = Computer(powerAdapter)
computer.showV()
return 0
}
三、优缺点
优点:
- 将目标类和适配者类解耦,通过引入适配器来重用现有的适配者,无需修改原有的代码;
- 增加了类的复用性和透明性,提高了适配者的复用性;
- 不仅可以适配适配者,还可以适配适配者的子类,符合里氏替换原则。
缺点:
- 仓颉是单继承语言,一次最多只能适配一个适配者类,适用具有局限性。
四、适用环境
- 系统需要适用一些现有的类,但这些类的接口(方法)不符合系统的需要,甚至是没有这类的源码。
五、小结
本章为大家详细的介绍了仓颉设计模式中适配器模式的内容,下一章,为大家带来适配器模式练习题的内容。最后,创作不易,如果大家觉得我的文章对学习仓颉设计模式有帮助的话,就动动小手,点个免费的赞吧!收到的赞越多,我的创作动力也会越大哦,谢谢大家🌹🌹🌹!!!
昇腾计算产业是基于昇腾系列(HUAWEI Ascend)处理器和基础软件构建的全栈 AI计算基础设施、行业应用及服务,https://devpress.csdn.net/organization/setting/general/146749包括昇腾系列处理器、系列硬件、CANN、AI计算框架、应用使能、开发工具链、管理运维工具、行业应用及服务等全产业链
更多推荐

所有评论(0)