kotlin 工厂方法

2018-04-10  本文已影响0人  睡不着失眠了
  1. 写接口
interface ExportApi {
    fun export(date: String)
}
  1. 创建模板 , 方便以后扩展功能
abstract class ExportOperator {
    lateinit  var exportApi:ExportApi
    fun export(data:String){
        exportApi = initExportApi()
        exportApi.export(data)
    }
    abstract fun initExportApi(): ExportApi
}

3)实现接口的

class ExportTextApi : ExportApi {
    override fun export(date: String) {
        System.out.println("text $date")
    }

}

4)实现模板类

class ExportTextFile : ExportOperator() {
    override fun initExportApi(): ExportApi {
        return ExportTextApi()
    }
}

5)测试

  @Test
    fun exportTest(){
        val exp = ExportTextFile()
        exp.export("我是文件")
        val exp2 = ExportDbApi()
        exp2.export("我是文件")
    }
上一篇下一篇

猜你喜欢

热点阅读