
一、目标类
package com.study.adapter
/**
* 鸿蒙操作系统
*/
interface HarmonyOS {
fun runHarmonyApp(): String
}
package com.study.adapter
/**
* 鸿蒙操作系统适配器:如果不存在这种适配器,Android的应用是无法在HormonyOS上面运行的
*/
class HarmonyOSAdapter : AndroidOS(), HarmonyOS {
override fun runHarmonyApp(): String {
//Android的应用程序
val runAndroidApp = runAndroidApp()
//通过一系列转换之后成为Harmony的应用程序
//...一系列操作
return "HarmonyApp"
}
}
二、转环类
package com.study.adapter
/**
* Android的OS
*/
open class AndroidOS {
fun runAndroidApp(): String {
return "AndroidApp";
}
}
三、主程序调用
package com.study.adapter
/**
* Android中常用的BaseAdapter/PageAdapter等等适配器,虽然名字上带有“Adapter”,
* 但是并非是适配器模式。真实目的只是为了方便编程罢了
*
*
* 定义和介绍
定义:将一个类的接口转化成客户需要的另外一个接口
使原本接口不兼容的类可以一起工作
类型:结构性
适用场景
已经存在的类,它的方法和需求不匹配的时候时(方法结果相同或类似)
不是软件设计阶段考虑的设计模式,是随着软件维护,由于不同产品,不同厂家造成功能类似而接口不相同的情况下的解决方案
优点
能提高类的透明性和复用,现有的类复用但不需要改变
目标类和适配器类解耦,提高程序扩展性
符合开闭原则
缺点
适配器编写过程需要全面考虑,可能会增加系统的复杂性
增加系统代码可读的难度
*
*/
fun main() {
val harmonyOSAdapter = HarmonyOSAdapter()
println(harmonyOSAdapter.runHarmonyApp())
}