第二章 设计优化(待续)
善用设计模式
单例模式
单例模式是设计模式中使用最为普遍的模式之一。它是一种对象创建模式,用于产生一个对象的具体事例,它可以确保系统中一个类只产生一个实例。在Java语言中,这样的行为带来两大好处:
- 对于频繁使用的对象,可以省略创建对象所花费的时间
- 由于new操作的次数减少,因而对系统内存的使用频率也会降低,这将减轻GC压力,缩短GC停顿时间
因此对于系统的关键组件和被频繁使用的对象,使用单例模式便可以有效地改善系统的性能。
单例模式的核心在于通过一个接口返回唯一的对象实例。一个简单的单例实现如下:
public class Singleton { private Singleton(){ System.out.println("Singleton is create");//创建单例的过程可能会比较慢 } private static Singleton singleton = new Singleton(); public static Singleton getInstance(){ return singleton; } }
首先单例必须要有一个private访问级别的构造函数,只有这样,才能确保单例不会在系统中的其他代码内被实例化,其次singleton成员变量和getInstance()方法必须是static的。
它唯一不足仅是无法对singleton实例做延迟加载。假如单例的创建过程很慢,而由于singleton成员变量是static定义的,因此在JVM加载单例类时,单例对象就会被建立,如果此时,这个单例类在系统中还扮演其他角色,那么任何使用这个单例类的地方都会初始化这个单例变量,而不管是否会被用到。至于单例模式的懒加载和其他更有写法有兴趣的朋友可以自行查阅其他资料。
代理模式
代理模式也是一种常见的设计模式。它使用代理对象完成用户请求,屏蔽用户对真实对象的访问。就如同现实中的代理一样。在软件设计中,使用代理模式的意图也很多,比如因为安全原因,需要屏蔽客户端直接访问真实对象;或者在远程调用中,需要使用代理类处理远程方法调用的技术细节(如RMI);也可能是为了提升系统性能,对真实对象进行封装,从而达到延迟加载的目的。
享元模式
装饰者模式
观察者模式
Value Object模式
业务代理模式
常用优化组件和方法
缓冲(Buffer)
缓存(Cache)
对象复用——“池”
并行替代串行
负载均衡
时间换空间
空间换时间
不积跬步,无以至千里;不积小流,无以成江海
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!