【设计模式】工厂模式 Factory Pattern
本文讲解创建型设计模式中的工厂模式,结合对话框Java示例,分别介绍简单工厂、工厂方法、抽象工厂三种模式的结构、实现与使用场景,阐明三者核心区别:简单工厂集中创建对象但违背开放封闭原则,工厂方法为每种产品对应独立工厂,抽象工厂则针对产品族设计,扩展产品族便捷、新增产品繁琐。
分享编程心得、开发实践、生活随笔,偶尔聊聊游戏与远方
本文讲解创建型设计模式中的工厂模式,结合对话框Java示例,分别介绍简单工厂、工厂方法、抽象工厂三种模式的结构、实现与使用场景,阐明三者核心区别:简单工厂集中创建对象但违背开放封闭原则,工厂方法为每种产品对应独立工厂,抽象工厂则针对产品族设计,扩展产品族便捷、新增产品繁琐。
Android 9.0系统默认禁止HTTP明文网络传输,导致使用Retrofit2请求接口时连接失败,可通过改用HTTPS、配置网络安全文件允许指定域名明文传输、在清单文件开启明文流量权限这三种方式解决。
Retrofit是Square基于OkHttp封装的RESTful网络框架,以注解方式开发,文章详细介绍了三种项目集成方式,分类讲解各类注解使用规则,完整演示实体类定义、框架初始化及同步异步网络请求的开发流程,并罗列了多种数据解析器与请求适配器选型。
LifeCycle是谷歌推出的Android生命周期感知组件,可感知Activity、Fragment生命周期并通知观察者,能解决传统生命周期代码混乱臃肿的问题;文章介绍了该组件的依赖引入方式,对比传统写法,讲解了Kotlin注解监听、Java8默认观察者两种实现用法,实现生命周期相关逻辑的解耦管理。
本文介绍了树数据结构的定义与核心特点,并以文件系统为例辅助说明;同时讲解了二叉查找树的特性与排序规则,使用Kotlin实现了节点类、二叉查找树容器类,完成了节点插入功能的代码编写与逻辑讲解,删除节点功能暂未补充实现。
本文记录智能卡线路保护加密相关操作,明确MAC安全报文校验码的用途、数据分段补全规则,以及8字节、16字节维护密钥对应的MAC计算流程并附文件读取实例;同时介绍线路加密的用途、数据补全与加密步骤,结合二进制文件写入实例演示完整的加密传输操作。
Android开发中为Toolbar加载菜单时,菜单项设置 app:showAsAction="always" 不生效,修改命名空间无法解决,最终通过Kotlin代码调用方法强制设置菜单显示属性,解决了菜单默认隐藏的问题。
切换到黑苹果系统后使用Wine运行Windows程序出现中文方框乱码,根源是Wine注册表缺少中文字体关联,通过编写字体注册表文件并导入Wine注册表,即可完美修复中文显示异常问题。
本文先回顾Java异常分类与try-catch-finally的作用,finally代码块可确保执行以实现统一逻辑处理;同时指出finally使用不当会导致异常丢失,通过两个示例验证:finally中抛出新异常会覆盖原有异常信息,finally内使用return会直接吞掉未抛出的异常,作者对后者的产生原因提出疑问。
Flutter发布1.0正式版可通过命令升级,选用其原生组件开发轻量文字RPG游戏,基于Dart语言实现了极简Hello World程序,完成了游戏黑色背景居中Logo的启动界面开发与资源配置,并将代码拆分封装为独立组件优化结构,提升了可维护性。
开发Flutter文字RPG游戏时,升级依赖包卡住后强行操作,导致执行热更新被锁定;问题由Flutter程序运行锁未释放或进程异常结束残留锁文件引发,可等待进程正常退出,或删除flutter/bin/cache/lockfile锁文件解决。
作者为开发轻量文字图片游戏选择入门谷歌开源的Flutter跨平台UI框架,基于MacOS完成Flutter SDK下载、环境配置与PATH添加,通过flutter doctor排查环境问题并安装编辑器插件,最终在Android Studio成功创建并运行Flutter Hello World示例项目。