一、前言
设计模式是我们Android成长之路必备的一项技能,相信很多同学都已经Get了,现在让我们来看看在Kotlin中设计模式是如何表达的呢。
二、单例模式
单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中一个类只有一个实例 。
使用场景: 确保某个类有且只有一个对象的场景,避免产生多个对象消耗过多的资源
- Java单例模式回顾
-
懒汉式:
饿汉式:
Kotlin单例模式写法
kotlin写法是不是简单直接越看越喜欢,一句话就概括了。
来看一下官方的说明
在 Kotlin 当中直接通过关键字 object 声明一个单例,并且它是线程安全的,并且object 声明的方式也是延迟加载的。
三、代理模式(委托模式)
代理模式是为其他对象提供一种代理以控制对这个对象的访问
代理模式是使用一个代理对象来访问目标对象的行为,Kotlin 下的实现与 Java 基本类似
抽象类
被代理类
代理类
调用
通过代理模式可以把复杂的判断和生成通知的逻辑都屏蔽了,让代码更加清晰
四、建造者模式
建造者模式是将一个复杂对象的构建和它的表示分离,使得同样的构建过程可以创建不同的表示
比如我们常用的 AlertDialog 、universal-image-loader就是使用的建造者模式,让我们看看kotlin中该怎么表达
使用方法与Java一样
其实Kotlin 的 apply 扩展原生也支持 Builder 模式
五、观察者模式
观察者模式是定义对象间的一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新
常见的观察者模式如RecyclerView的Adapter的notifyDataSetChanged更新方法、BroadcastReceiver、开源库EventBus、RxJava等等
Kotlin的写法与Java类似
通过UnReadMessageObserver 单例来实现全局观察管理未读消息
被观察者
观察者
观察者模式是我们经常使用的模式,它的一个重要作用就是解耦,将观察者个被观察者解耦
六、适配器模式
1.适配器模式把一种接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作
2.举个栗子:手机普通充电需要5V的电压,而生活用电电压是220V,而我们的充电器就充当了转换适配的作用,
3.这里的适配器也是一个道理
4.适配器模式中的目标接口也就是 5V电压的接口
适配器模式中需要被适配的接口,日常220V电压
适配器
以上就是适配器模式在Kotlin上的简单实现了,适配器模式的原理在于把原本不兼容的接口融合在了一起,使之能更好的协作。
总结
以上几种设计模式是我们经常会用到的,Kotlin的大多设计模式基本与Java实现大致相同,灵活的使用设计模式能让我们代码更加的灵活,便于管理。
关于我
更多信息可以点击关于我 , 非常希望和大家一起交流 , 共同进步
也可以扫一扫, 目前是一名程序员,不仅分享 Android开发相关知识,同时还分享技术人成长历程,包括个人总结,职场经验,面试经验等,希望能让你少走一点弯路。
相关推荐
在这个项目中,我们关注的是“Android-一个简单的Kotlin选项解析器”,这通常指的是用于处理命令行参数或者配置文件中选项的工具。在Android应用开发中,虽然大部分操作可以通过用户界面来完成,但在某些情况下,如...
《Kotlin设计模式实战解析》 在编程领域,设计模式是一种通用、可重用的解决方案,用于解决在软件设计中经常遇到的问题。当我们在Kotlin这样的现代编程语言中工作时,设计模式的重要性不言而喻。Kotlin以其简洁、...
本项目"设计模式之 Kotlin 实现"是一个开源项目,旨在展示如何在 Kotlin 中实现常见的设计模式。 首先,我们来看一下工厂模式。在 Kotlin 中,我们可以利用函数和抽象类来实现简单工厂和工厂方法模式。例如,创建一...
本项目深入解析基于Kotlin语言的微服务架构设计模式,源码包含443个文件,涵盖221个Java文件、176个Kotlin文件、27个XML文件、5个Markdown文件以及其他多种文件类型。项目融合了Java、Kotlin和JavaScript等多种编程...
Android使用Kotlin利用Gson解析多层嵌套Json数据
Klaxon是一个专门为Kotlin设计的JSON解析器,它的出现为Kotlin开发者提供了一种简洁、易用且高效的处理JSON数据的方式。Kotlin作为一种现代、静态类型的编程语言,以其丰富的特性和对Java平台的良好集成而受到广泛...
1. **解析和序列化**:在解析JSON或其他数据格式时,ADT可以帮助构建明确的数据模型,而Jota的模式匹配功能则使得解析过程更简洁。 2. **状态机**:在构建状态机时,ADT可以用来表示不同的状态,Jota的模式匹配可以...
Kotlin 的设计充分利用了 Java、Scala、Groovy、C#、JavaScript、Swift 等语言的特性,以提高开发效率和运行时性能。它在类型系统上特别强调了安全性,例如能够有效避免空指针异常,从而提升了程序的健壮性。 ...
GraphQL Kotlin 是一个专门为 Kotlin 开发者设计的框架,它允许开发者用纯代码的方式定义 GraphQL API。这个开源项目致力于简化在 Kotlin 应用程序中集成 GraphQL 的过程,提供了一套全面的工具和库,使得开发更加...
《深入浅出学Kotlin》是一本全面介绍Kotlin编码的书籍。本书采用一种独特的方法帮助您学习Kotlin语言。这种方法不只是教会你语法和用法,它教您如何向一个Kotlin开发高手一样思考。您将学习从语法基础到集合、泛型、...
Kotlin是一种现代、面向对象的编程语言,它由JetBrains公司开发,设计用于提高开发者的生产力和代码的可读性。Kotlin的基础编程概念是学习任何Kotlin项目的核心,这包括变量声明、数据类型、控制流、函数和类等。...
谷歌2017年I/O大会将Kotlin定位Android官方开发文档,Kotlin全面100%兼容Java,本文档会与Java进行对比,全面解析Kotlin,你值得拥有!
概述:Kotlin 是一种在 Java 虚拟机上运行的静态类型编程语言,被称之为 Android 世界的 Swift,由 JetBrains 设计开发并开源。Kotlin 可以编译成 Java 字节码,也可以编译成 JavaScript,方便在没有 JVM 的设备上...
kotlin教程全面解析.zip
它负责解析源代码、执行类型检查、优化中间代码(IR)并生成目标平台的机器码。Kotlin支持跨平台编译,可以编译为Java字节码、JavaScript或者原生机器码,适用于Android、Web、服务器端以及桌面应用等不同场景。 二...
《Kotlin学习书籍(中文)》是一套专为中文学习者设计的教程,旨在帮助开发者深入理解和掌握Kotlin编程语言,特别是其在Android开发中的应用。这套资源包含了两本PDF电子书:《Kotlin in Chinese》和《Kotlin for ...
虽然在现代Android开发中,我们更倾向于使用Kotlin的协程和LiveData等工具来实现异步通信和事件处理,但理解基本的观察者模式对于深入学习Android框架和设计模式至关重要。 通过这个示例,你可以学习到: 1. 如何在...
`clikt`是一款专为Kotlin设计的开源命令行接口解析库,旨在提供一种直观且简洁的方式来构建命令行应用程序。它的设计理念是让开发者能够以最少的代码量实现强大的命令行解析功能,同时保持代码的可读性和可维护性。 ...
这本书深入浅出地介绍了Kotlin这门现代、简洁且强大的编程语言,旨在帮助读者快速掌握Kotlin的核心概念和实战技巧。 Kotlin是由JetBrains开发的一种静态类型的编程语言,它被广泛应用于Android应用开发,同时也被...