美文网首页
kotlin 简单工厂实现

kotlin 简单工厂实现

作者: 睡不着失眠了 | 来源:发表于2018-04-10 21:16 被阅读0次

    1) 创建名称为 Api 的接口

    interface Api {
        fun opreator()
    }
    
    1. 创建几个实现Api接口的类
    class ImpA :Api{
        override fun opreator() {
            System.out.println("我是ImpA")
        }
    }
    
    
    
    class ImpB:Api {
        override fun opreator() {
            System.out.print("我是ImpB")
        }
    }
    
    1. 创建工厂
    object Factory {
        
        /**
         * 选择生成那个类
         * @param which 控制生成的类
         */
        fun getApi(which:Int):Api{
            var api:Api
            when(which){
                1->{ api = ImpA()}
                2->{ api = ImpB()}
                else ->{ api = ImpC() }
            }
            return api
        }
        /**
         * 选择生成那个类
         * @param java  
         */
        fun <T:Api> apiProduct(java: Class<T>): T {
    
            var api:Api = java.newInstance()
    
            return api as T
        }
    }
    
    
    1. 测试用例
    class ExampleUnitTest {
        @Test
        fun  apiFactoryTest(){
            val api = Factory.getApi(1)
            api.opreator()
    
            val api2 = Factory.apiProduct(ImpB::class.java)
            api2.opreator()
    
            val api3 = Factory.apiProduct(ImpC::class.java)
            api3.opreator()
        }
    }
    

    相关文章

      网友评论

          本文标题:kotlin 简单工厂实现

          本文链接:https://www.haomeiwen.com/subject/agfohftx.html