前言
最近在做 Android 项目时,碰到一个实际问题的场景,查了一下解决办法,居然凑巧捕获到一种设计模式,文以记之~
场景
当 app 运行在 MainActivity 时,需要连接一个服务端以获取服务端的配置信息。而后根据配置信息进入相应的管理界面。
这就会带来一个问题,获取配置时会建立一个 socket,而 Android 又不支持直接将这个 socket 会话传到另一个 Activity 当中,这就导致同一个会话需要建立两次: 1. 获取设备配置 2. 发送控制信息
众所周知,建立 socket 是一种资源占用型很高的行为,可不可以只用建立一次呢?
答案是 OK 的。
单例模式
参考这里使用了单例模式的第三种,全局状态下 socket 只用实例化一次,因为存在着严格的时间先后关系,所以连线程同步都不用考虑,轻松解决~