18_适配器模式

一、目标类

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())
}

猜你喜欢

转载自blog.csdn.net/Duckdan/article/details/111467402