Android开发之Java设计模式
目前注明的主要有23种设计模式,就常规的Java设计模式Android开发网给大家应该掌握的主要有以下:
一、创建型模式
1. 工厂方法模式
2. 单例模式
3. 生成器模式
二、行为型模式
1. 迭代器模式
2. 责任链模式
3. 观察者模式
4. 模板方法模式
三、结构型模式
1. 代理模式
2. 外观模式
由于设计模式讲解较费时,具体的Android123分多个章节具体描述,同时希望初入Java开发的网友先深刻了解下Java的抽象类、接口和继承相关的问题,以便理解今后相关的内容。
今天我们就Android开发中的一些设计模式做一些基础性的掌握,在上一次的 Android开发之Java设计模式入门篇 中我们提到了一些有关 Java基础内容,本次就Android项目的架构设计相关内容做分析:
1. 静态工厂方法
静态工厂方法可以算是工厂方法加单例模式的整合在Android平台上,由于Android的Context可以很好的传递实例,静态工厂方法可以提到传统的类构造器,对于一些逻辑的服务提供类可以考虑这样的设计,比如文件下载、图片裁剪等操作。
2. Java的类访问权限
对于程序的可靠性而言,成员变量尽量私有,通过暴漏公开的方法来访问这些私有成员,提供类似getXXX和setXXX这样的方法,不仅是Java,这点C#对于属性的操作概念在Dot Net上已经深入人心,好处就是可以阻止继承后的访问换乱问题。
3. 使用枚举替代常量
Java在JDK 1.5开始加入了enum枚举类,相对于常规的final int这样的定义一些常量更简单安全,毕竟常量是一堆类似整形的数值,打印起来没有过多的意义,枚举对于继承后访问的清晰度可以很好的杜绝隐患发生。
4. 使用列表优先于数组
Java的集合类很方便,使用List类的列表在开销上比Object [ ] 这样的数组大,但是对于泛型的支持而言更好用强大。也可以避免一些不必要的错误,比如
cwjObject [] obj= new int[1];
obj[1] = "android开发网测试"; //这样会在运行时抛出类似ArrayStoreException这样的异常。
而使用列表则为:
List<cwjObject> obj=new ArrayList<int>();
obj.add("android123测试"); // 由于传入列表的是字符串,和构造时类型的int不同,在编译时就提示错误,可以避免一些不必要的情况发生。
5. Java的foreach代替for
Java的foreach仍然使用for来写,这点和C#直接用foreach关键字有点不同,但是使用方法是一样的,除了更简洁外,其实foreach比传统的for更加优化,比如传统的for第二个限制位,一般访问属性或方法,比如说
for (int x=0;x<obj.size();x++) //这句的限制符号每次都会执行obj.size() 方法,当然Android开发网相信size()方法访问的是一个数组的length属性,活着是
for (int y=0;y<obj.length;y++) //这里同样每次循环都执行obj.length对于Java VM的开销主要由这个obj的长度决定的,而Android SDK文档的推荐方式是
int nSize=obj.size() 或 int nSize=obj.length
for (int z=0;z<nSize;z++) ,但是这还不是最优的方法,下面Android123给大家更好的foreach方式的替代方法:
for (SmartObject singleObj : SmartObjectArray)
{
singleObj.setName("cwj"); 或 singleObject.strName="cwj";
}
有关Android开发中的Java设计模式技巧,希望国内Android开发者打好Java基础,别扎堆实现铺天盖地的应用,目前不说恶意软件问题,就大部分的软件设计质量令人担忧,还有很多应用基本上就是J2EE或J2SE开源项目的移植版,更多的问题Android123今后详细讲解。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
2008-05-20 1 string .Formart();2 sql case;3 datagrid显示格式控制;4 String.Format举例(C#);格式控制style="MARGIN: 0px"