美文网首页
简单工厂模式(Kotlin & Java)

简单工厂模式(Kotlin & Java)

作者: 一只笔 | 来源:发表于2018-07-26 16:59 被阅读0次

通过泛型创建代理模式

因为返回的是指定类型的不用判断类型,也不强转类型,直接使用

产品抽象

abstract class Product {
    abstract fun show()
}

产品A

class ProductA : Product() {
    override fun show() {
        println("生产出了产品A")
    }
}

产品B

class ProductB : Product() {

    override fun show() {
        println("生产出了产品B")
    }
}

工厂类.利用反射创建产品

object Factory {
    // 定义方法:通过反射动态创建产品类实例
    internal fun <T> getInstance(cla: Class<T>): T? {
        var type: T? = null
        try {
            // 1. 根据传入的class 得到name ,获取class
            val aClass = Class.forName(cla.name)
            // 2. 通过Class对象动态创建该产品类的实例
            type = aClass.newInstance() as T
        } catch (e: Exception) {
            e.printStackTrace()
        }
        // 3. 返回传入的类型
        return type
    }
}

模式使用

fun main(args: Array<String>) {
    // 1. 动态生成产品类实例
    val concreteProduct = Factory.getInstance(ProductA::class.java)
    // 2. 调用该产品类对象的方法,从而生产产品
    concreteProduct!!.show()

    //生产B产品
    val productB = Factory.getInstance(ProductB::class.java)
    productB!!.show()
    //因为返回的是指定类型的不用判断类型,也不强转类型
    productB.print()

}

输出结果:


image.png

本文是Kotlin 实现,源码中有java 实现方式
源码下载请点击

相关文章

  • 简单工厂模式(Kotlin & Java)

    通过泛型创建代理模式 因为返回的是指定类型的不用判断类型,也不强转类型,直接使用 产品抽象 产品A 产品B 工厂类...

  • Java与模式

    《JAVA与模式》之简单工厂模式《JAVA与模式》之工厂方法模式《JAVA与模式》之抽象工厂模式

  • 《JAVA与模式》之简单工厂模式

    《JAVA与模式》之简单工厂模式 在阎宏博士的《JAVA与模式》一书中开头是这样描述简单工厂模式的:简单工厂模式是...

  • 简单工厂模式

    Java23种设计模式--简单工厂模式 一、什么是简单工厂模式 简单工厂模式属于类的创建型模式,又叫做静态工厂方法...

  • 工厂模式(Factory Pattern)

    概述 工厂模式(Factory Pattern)包括简单工厂模式、工厂方法模式和抽象工厂模式,是 Java 中最常...

  • 设计模式系列-简单工厂模式

    JAVA设计模式系列: 单例模式 观察者模式 模板方法模式 简单工厂模式 定义 简单工厂模式又叫做静态工厂方法模式...

  • Kotlin设计模式之策略模式

    简单介绍下用Kotlin写的策略模式,还有就是与Java版本的对比。 Kotlin Java 输出 实现策略模式时...

  • Java 设计模式1-简单工厂模式

    简单工厂模式不属于标准的Java 23设计模式之内。根据分类,简单工厂模式又分类为:1.普通简单工厂模式。2.多方...

  • JAVA基础23种设计模式----简单工厂模式--MonkeyK

    JAVA基础23种设计模式----简单工厂模式--MonkeyKing 简单工厂模式属于类的创建模型模式,又叫静态...

  • Kotlin设计模式之命令模式

    简单介绍下用Kotlin写的命令模式,还有就是与之对比的Java版本。 Kotlin Java 输出

网友评论

      本文标题:简单工厂模式(Kotlin & Java)

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