工厂模式的核心作用就是通过一个工厂类隐藏对象实例的创建。典型的应用是一个父类多个子类。
通过伴生对象创建静态工厂方法
interface Computer { val cpu: String companion object Factory { operator fun invoke(type: Type): Computer { return when (type) { Type.PC -> PC() Type.Server -> Server() } } } } enum class Type { PC, Server } class PC(override val cpu: String = "Core") : Computer class Server(override val cpu: String = "Server") : Computer fun main() { Computer.Factory(Type.PC) Computer.Factory(Type.Server) }
抽象工厂为创建一组相关或互相依赖的对象提供一个接口,无需指定它们的具体类
内联函数简化抽象工厂
sealed class Computer { abstract val cpu: String class Apple(override val cpu: String = "Core") : Computer() class IBM(override val cpu: String = "Server") : Computer() } class AppleFactory : AbstractFactory() { override fun produce(): Computer = Computer.Apple() } class IBMFactory : AbstractFactory() { override fun produce(): Computer = Computer.IBM() } abstract class AbstractFactory { abstract fun produce(): Computer companion object { inline operator fun <reified T : Computer> invoke(): AbstractFactory { return when (T::class) { Computer.Apple::class -> AppleFactory() Computer.IBM::class -> IBMFactory() else -> throw IllegalArgumentException() } } } }
参考:kotlin核心编程
https://github.com/dbacinski/Design-Patterns-In-Kotlin/#visitor
相关推荐
patterns_factory:一个简单的Kotlin示例用于工厂模式
kotlin学习kotlin学习
android 观察者模式示例代码 android studio kotlin代码 基于java.uitl.*
MVP+Kotlin 来实现登录小案例,博客地址:http://blog.csdn.net/dickyqie/article/details/77684591
设计模式之 Kotlin 实现.zip,kotlin中的软件设计模式
“实战”部分包括Kotlin与Java互操作、使用Kotlin集成Spring Boot开发WEB服务端、使用Kotlin集成Gradle开发、使用Kotlin和Anko的Android开发、使用Kotlin DSL、Kotlin文件IO操作与多线程、使用Kotlin Native。...
用Kotlin实现设计模式代码
kotlin官方中文pdf文档kotlin官方中文pdf文档kotlin官方中文pdf文档kotlin官方中文pdf文档kotlin官方中文pdf文档kotlin官方中文pdf文档kotlin官方中文pdf文档kotlin官方中文pdf文档kotlin官方中文pdf文档kotlin官方...
内容摘要:Kotlin视频教程、第1章 Kotlin简介、第2章 快速开始:HelloWorld、第3章 Kotlin语言基础、第4章 基本数据类型与类型系统、第5章 集合类、第6章 泛型、第7章 面向对象编程、第8章 函数式编程、第9章 轻量级...
Fundamental Kotlin (Kotlin基础 源码),源码非常值得参考
“实战”部分包括Kotlin与Java互操作、使用Kotlin集成Spring Boot开发WEB服务端、使用Kotlin集成Gradle开发、使用Kotlin和Anko的Android开发、使用Kotlin DSL、Kotlin文件IO操作与多线程、使用Kotlin Native。...
《Kotlin从入门到进阶实战》从Kotlin 语言的基础语法讲起,逐步深入到Kotlin进阶实战,并在最后配合项目实战案例,重点介绍了使用Kotlin+Spring Boot进行服务端开发和使用Kotlin进行Android应用程序开发的内容,让...
即便 Scala 可能还是更为强大些,Kotlin 还是尝试着提供比 Java 更好的函数、模式匹配、空指针预防和泛型。该语言同时也支持特征(traits)和模式匹配。 Kotlin 插件在当前版本的 IntelliJ 和 Eclipse 中均已能使用...
kotlin实现的进度条
Kotlin官方文档PDF中文版,适合有兴趣尝试使用Kotlin语言开发android应用的android开发者,入门基本语法,毕竟Kotlin已经是Google宣布的android开发官方语言了
Kotlin教程.pdf
用kotlin制作坦克大战小游戏源码 用kotlin制作坦克大战小游戏源码 用kotlin制作坦克大战小游戏源码 用kotlin制作坦克大战小游戏源码 用kotlin制作坦克大战小游戏源码 用kotlin制作坦克大战小游戏源码 用kotlin...
kotlin-for-android-developers-zh kotlin电子书,kotlin电子书
kotlin练习项目,kotlin练习项目,kotlin练习项目,kotlin练习项目,kotlin练习项目,kotlin练习项目,kotlin练习项目,kotlin练习项目,
kotlin学习书籍,中文版。里面介绍了kotlin的一些基本语法以及Android中kotlin的运用。