- 博客(23)
- 资源 (7)
- 收藏
- 关注
原创 常用设计模式系列(十三)—组合模式
本文介绍了结构型设计模式中的组合模式(Composite Pattern)。组合模式通过树形结构表示:整体-部分关系,使客户端可以统一处理单个对象和组合对象。文章通过超市购物袋嵌套的实例类比,展示了组合模式的应用场景。代码示例演示了抽象构件、树枝角色(袋子)和树叶角色(商品)的实现,最终计算出购物总价。组合模式的优点在于简化客户端逻辑和方便扩展,缺点是设计时需要考虑通用抽象性且不易用继承扩展。适用场景包括需要处理树形结构数据(如菜单、权限系统)和隐藏对象差异的情况。
2025-07-25 14:15:58
398
原创 常用设计模式系列(十二)—享元模式
《享元模式:共享对象的优雅管理》 享元模式是一种结构型设计模式,通过共享相似对象来减少内存占用和提高性能。它通过将对象的公共部分抽象出来,由多个对象共享使用,从而减少重复创建的开销。与单例模式不同,享元模式可以有多个实例,并通过共享容器来管理。 典型应用场景包括线程池、数据库连接池等需要大量重复对象的场景。以共享充电宝为例,充电宝作为共享对象被统一管理在池中,使用时从池中获取,用完后归还,实现了资源的高效利用。 代码实现展示了充电宝池的创建和管理过程,包括抽象充电宝类、具体实现类以及享元工厂类。
2025-07-25 14:05:38
483
原创 常用设计模式系列(十一)—外观模式
外观模式是一种结构型设计模式,通过提供统一接口来简化复杂子系统的访问。它将多个子系统整合为一个高层接口,客户端只需与外观对象交互,无需了解内部实现细节。文中通过房产中介的例子形象说明:中介(外观角色)整合多个房东房源(子系统),为客户提供统一服务。代码示例展示了如何创建子系统、抽象外观角色和具体外观角色,并演示了客户端调用方式。该模式优点包括简化接口、降低耦合度,但违背开闭原则,适用于系统分层、接口复杂需统一管理等场景。
2025-07-24 14:37:06
525
原创 常用设计模式系列(十)—装饰者模式
文章摘要:本文介绍了装饰者设计模式,该模式通过在不改变对象结构的情况下动态扩展功能。以鸡蛋灌饼为例,基础灌饼通过装饰类添加不同配料形成套餐A/B,演示了如何在不修改原有类的基础上增加功能。文章提供了完整的Java代码实现,分析了装饰者模式的优缺点(灵活扩展但可能增加复杂度),并指出其适用于需要透明扩展功能的场景,相比继承更灵活。最后作者鼓励读者关注自己以获取更多设计模式内容。
2025-07-24 14:28:08
418
原创 常用设计模式系列(九)—桥接模式
本文介绍了设计模式中的桥接模式(Bridge Pattern)。桥接模式通过将抽象与实现分离,使它们可以独立变化,从而降低系统耦合度。作者以汽车制造为例,说明如何将颜色喷涂功能从具体车型生产线中抽离,形成独立的喷涂组,实现功能复用。文章包含完整的Java代码示例,展示了抽象化角色(Color)、实现化角色(Black,Red)、扩展抽象化角色(Car)及其具体实现化角色(Automobile,ElectricCar)的创建过程。最后分析了桥接模式的优缺点及适用场景,指出其适合存在两个独立变化维度的系统,能够
2025-07-23 11:31:15
682
原创 常用设计模式系列(一)—简单工厂模式
hello各位程序员大哥大姐好,上期我讲解了设计模式的概念及分类,学习了UML类图的认识,今天我们就趁热打铁,学习一下简单工厂模式,以后每一个模式会出一篇文章,供各位及我自己查阅学习。斗图还是不能忘的,为了苟且的生活,大家加油,生活不止眼前的苟且,还有远方的苟且。第一节:简单工厂模式概述简单工厂模式(Smiple Factory Pattern):定义一个工厂类,他可以根据参数的不同返回不同类的实例,被创建的实例通常都具有共同的父类。简单...
2021-01-21 10:19:42
1723
原创 什么是设计模式?详解设计模式概念及几大原则!
前言hello,各位小伙伴大家好,,天气冷了,各位注意保暖。今天我们来讲讲设计模式,在我们学习Java的时候,时常听到单例模式,多例模式,还有使用Spring的时候,默认采用的单例模式,你所听到的“饱汉式”、“饿汉式”,都是对设计模式的形容。那么什么是设计模式呢?它又是什么概念呢。设计模式的概念:设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员.
2020-12-10 17:13:21
1675
原创 spring+struts+quartz开发定时任务出现的问题
java.io.NotSerializableException: Unable to serialize JobDataMap for insertion into database because the value of property 'methodInvoker' is not serializable: org.springframework.scheduling.quartz.Me...
2018-08-22 16:03:15
1251
TIB-js-studiocomm-6.18.1-macosx-x86-64旧版本,官网已无法找到,稀缺资源
2024-12-31
计算机毕业设计之人力资源管理系统(Java单体架构)
2022-03-25
计算机毕业设计之人力资源管理系统(Java分布式架构)
2022-03-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人