
设计模式与范式:结构型 (8篇)
文章平均质量分 93
设计模式与范式:结构型 (8篇)
码龄23年
想起来就更新
展开
-
55 | 享元模式(下):剖析享元模式在Java Integer、String中的应用
本文讨论了享元模式在Java中的实际应用,尤其是在Integer和String类中的体现。通过缓存常用的对象,Integer类在-128到127范围内避免了频繁创建新对象,提升了内存效率;而String类通过字符串常量池实现了相同字符串的复用,减少了内存占用。然而,享元模式对垃圾回收不友好,享元对象在没有使用时可能无法被及时回收。文章建议开发者在实际项目中合理使用享元模式,避免过度使用,尤其在确保其能带来显著内存优化的场景下。最后,文章还提出了一些改进思路,帮助更好地管理和回收不再使用的享元对象。原创 2024-10-18 11:07:10 · 815 阅读 · 0 评论 -
54 | 享元模式(上):如何利用享元模式优化文本编辑器的内存占用?
本文详细介绍了享元模式的原理和实现,重点通过棋牌游戏和文本编辑器的例子展示了该模式在内存优化中的应用。享元模式通过复用对象,减少内存消耗,适用于大量重复对象的场景。在棋牌游戏中,享元模式通过共享棋子的属性信息,实现棋盘内存优化;在文本编辑器中,享元模式用于复用相同的字体格式,从而节省内存。文章还对享元模式与单例、缓存、对象池等概念进行了对比,帮助读者更好地理解其独特性与应用场景。总体而言,本文为开发人员提供了在实际开发中使用享元模式进行内存优化的实用参考。原创 2024-10-18 11:05:35 · 751 阅读 · 0 评论 -
53 | 组合模式:如何设计实现支持递归遍历的文件系统目录树结构?
本文介绍了组合模式的原理及其在文件系统中的应用。组合模式是一种结构型设计模式,它允许将对象组合成树形结构,从而统一处理单个对象和组合对象的逻辑。文章以文件系统为例,展示了如何通过组合模式设计文件和目录类,利用递归遍历实现统计文件数量和大小的功能。此外,还提到了组合模式在OA系统中部门与员工管理中的应用场景。文章通过具体案例说明了组合模式的优势,特别是在处理具有层次结构的复杂系统时。最后,文章提出了优化递归统计函数执行效率的思考点,鼓励读者进一步探索。原创 2024-10-16 10:21:31 · 1269 阅读 · 0 评论 -
52 | 门面模式:如何设计合理的接口粒度以兼顾接口的易用性和通用性?
门面模式是一种重要的设计模式,旨在提供统一的接口,简化子系统的使用。通过封装系统底层实现,该模式能够隐藏复杂性,提供更易用的接口,解决易用性和性能问题。此外,门面模式还可用于设计新接口,实现多个操作在一个事务中执行,解决分布式事务问题。文章强调了接口设计的重要性,指出接口粒度设计需权衡可复用性和易用性,允许提供冗余的门面接口来提供更易用的接口。总的来说,门面模式在接口设计和系统优化中具有重要作用,能够帮助开发者解决多方面的技术挑战。原创 2024-10-16 10:21:01 · 782 阅读 · 0 评论 -
51 | 适配器模式:代理、适配器、桥接、装饰,这四个模式有何区别?
适配器模式是一种结构型设计模式,主要用于解决接口不兼容的问题。本文详细介绍了适配器模式的两种实现方式——类适配器和对象适配器,并分析了其应用场景,如封装有缺陷的接口设计、统一不同类的接口、替换外部系统依赖等。通过Java日志系统中的应用示例,文章展示了适配器模式如何提高代码的灵活性和可维护性。除此之外,本文还对比了适配器、代理、桥接、装饰器模式,帮助读者更好地理解这些模式的区别及适用场景。整体而言,适配器模式在解决接口兼容性问题中具有重要作用,是开发者提升代码扩展性的重要工具。原创 2024-10-15 10:45:25 · 1628 阅读 · 0 评论 -
50 | 装饰器模式:通过剖析Java IO类库源码学习装饰器模式
本文通过剖析Java IO类库源码,详细介绍了装饰器模式的设计思想和应用场景。文章首先解释了Java IO类库的复杂性及其在基于继承设计中的问题,随后引入装饰器模式作为解决方案。装饰器模式通过组合替代继承,允许动态地为原始类添加增强功能,且支持多个装饰器的嵌套使用。文章还比较了装饰器模式和代理模式,强调装饰器专注于与原始类相关的功能增强。通过分析Java IO中的装饰器类实现,如FilterInputStream的继承方式,文章帮助读者深入理解了装饰器模式的实用性及其在实际开发中的作用。原创 2024-10-15 10:44:24 · 1677 阅读 · 2 评论 -
49 | 桥接模式:如何实现支持不同类型和渠道的消息推送系统?
桥接模式是一种结构型设计模式,旨在将抽象与实现解耦,使它们可以独立演化。本文通过JDBC驱动和API接口监控告警的例子,深入阐述了桥接模式的应用场景。文章重点解释了桥接模式的原理及其在实际开发中的两种理解方式。在第二种方式中,通过组合关系将不同渠道的消息发送逻辑独立出来,创建专门的消息发送类,避免了类结构的复杂性。桥接模式的核心在于灵活性,它能够有效减少代码耦合,读者应重点掌握其原理及实际应用,以优化系统设计。原创 2024-10-14 10:06:01 · 957 阅读 · 0 评论 -
48 | 代理模式:代理在RPC、缓存、监控等场景中的应用
本文介绍了代理模式及其应用。代理模式通过引入代理类,在不修改原始类的情况下附加功能,从而实现业务代码与框架代码的解耦。文章以性能计数器为例,展示了如何利用代理模式优化系统设计。此外,还详细讲解了动态代理的原理,通过动态生成代理类,避免了手动编写多个代理类的繁琐工作。代理模式常用于处理非功能性需求,如日志记录、监控、鉴权、缓存等,在RPC调用和性能优化等领域也广泛应用。通过代理模式,开发者可以更好地分离业务逻辑与附加功能,提升代码的扩展性和可维护性。原创 2024-10-14 10:05:23 · 1528 阅读 · 0 评论