设计模式
文章平均质量分 84
23种设计模式
一叶飘零_sweeeet
大家好,我是果酱(ken),公众号:“果酱桑” 。专注 Java 开发与云原生技术领域,持续分享技术实现方案、实战问题排查、干货心得及前沿动态。已入驻阿里云、稀土掘金、个人公众号等平台,博文同步更新~ 若有技术疑问、经验交流或方向指导,欢迎评论区探讨!以技术为桥,共赴成长之路,期待与你一起深耕技术、To be is to do !共同进步~
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
深度拆解汽车制造系统设计:用 Java + 设计模式打造高扩展性品牌 - 车型动态生成架构
本文提出了一套基于Java和设计模式的灵活可扩展汽车制造系统解决方案。核心采用"抽象工厂模式+模板方法模式"组合,有效解决了"多品牌+多车型"的生产需求,同时保证统一制造流程和差异化配置。系统支持丰田、本田等不同品牌,以及轿车、SUV等多种车型的动态扩展,所有实例可直接落地运行。通过分层架构设计,实现业务逻辑与数据持久化分离,并使用MySQL存储品牌、车型、生产记录等数据。测试验证表明,该系统满足高复用、易扩展的核心需求,性能稳定可靠。原创 2025-11-12 18:11:59 · 1564 阅读 · 0 评论 -
日志记录器的单例之道:从设计到源码的深度剖析
本文深入探讨了单例模式在日志记录器设计中的应用与实践。通过分析日志系统的核心需求,对比了饿汉式、懒汉式、双重检查锁定等单例实现方式的优劣,并给出了完整的日志记录器实现方案。文章不仅涵盖了日志级别控制、多目标输出、异步处理等实用功能,还特别针对单例模式的线程安全、序列化、反射攻击等潜在问题提出了解决方案。最后结合Spring框架,展示了如何将单例日志记录器无缝集成到现代Java应用中,为开发高效可靠的日志组件提供了实用指导。原创 2025-11-12 17:55:06 · 741 阅读 · 0 评论 -
深入 Spring 内核:解密 15 种设计模式的实战应用与底层实现
Spring框架深度解析了15种核心设计模式的应用,包括:工厂模式(BeanFactory)、单例模式(Bean管理)、代理模式(AOP实现)、适配器模式(SpringMVC请求处理)、装饰器模式(功能增强)、观察者模式(事件机制)、策略模式(资源加载)、模板方法模式(JdbcTemplate等)、责任链模式(拦截器)等。文章通过代码示例详细展示了每种模式在Spring中的具体实现方式,如FactoryBean的工厂方法、三级缓存的单例管理、动态代理的AOP机制等。原创 2025-10-18 16:29:27 · 1333 阅读 · 0 评论 -
从 0 到 1 构建保险系统多级分销佣金引擎:责任链 + 策略模式的完美实践
本文探讨了保险行业数字化转型中多级分销佣金计算系统的设计与实现。针对产品多样性、分销层级复杂性和规则动态变化三大业务挑战,提出结合责任链与策略模式的解决方案。系统采用分层架构设计,通过策略模式封装不同险种的计算逻辑,利用责任链模式处理多级分销关系,实现规则配置化管理。核心功能包括产品定义、层级管理、规则配置和自动化计算,支持日均百万级保单处理。该系统已在实际应用中显著缩短规则调整周期和产品上线时间,提升计算准确性和处理能力。原创 2025-10-05 17:26:36 · 1253 阅读 · 0 评论 -
支付系统设计
支付系统的设计是一个复杂的过程,需要考虑许多因素,如易用性、安全性、性能、可扩展性等。通过理解支付系统的基本架构和各个组成部分的设计考虑,我们可以设计出一个既安全又高效的支付系统。原创 2023-11-09 13:42:13 · 776 阅读 · 0 评论 -
Java代理模式:动态代理 vs 静态代理
Java代理模式:动态代理 vs 静态代理原创 2023-08-15 16:34:14 · 403 阅读 · 0 评论 -
设计模式在Spring中的应用
设计模式是软件开发中经过验证的解决方案,用于解决常见的设计问题。Spring框架是一个功能强大的Java开发框架,它广泛应用了各种设计模式。原创 2023-08-10 18:04:49 · 409 阅读 · 0 评论 -
使用Spring Boot 解决跨域问题
跨域问题是由浏览器的同源策略引起的。同源策略要求浏览器只能向同一域名下的服务器发送请求,而不能向其他域名下的服务器发送请求。同源策略的目的是保护用户的隐私和安全。例如,一个在域名下加载的页面,不能直接向域名下的服务器发送请求。本文介绍了使用Spring Boot解决跨域问题的三种方法:使用CORS、使用Spring Security和使用代理服务器。原创 2023-07-14 13:46:14 · 3950 阅读 · 0 评论 -
访问者模式:灵活处理对象结构
在软件开发中,我们经常会遇到处理复杂对象结构的情况。对象结构由多个不同类型的对象组成,而每个对象都可能具有不同的行为。此时,访问者模式可以派上用场。访问者模式是一种行为设计模式,它将算法与对象结构分离,使得可以在不改变对象结构的前提下,定义新的操作。原创 2023-07-14 09:53:13 · 3447 阅读 · 1 评论 -
状态模式:实现对象状态的封装和切换
状态模式是一种行为设计模式,它允许对象在内部状态改变时改变其行为。该模式将对象的行为封装在不同的状态类中,使得对象可以根据其内部状态的改变而改变行为,从而实现了状态和行为的解耦。原创 2023-07-14 09:45:46 · 3613 阅读 · 0 评论 -
观察者模式:实现对象间的松耦合通信
观察者模式是一种对象间的通信方式,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。当主题对象的状态发生变化时,它会通知所有的观察者对象,使它们能够自动更新自己。观察者模式包含三个核心角色:主题(Subject)、观察者(Observer)和具体观察者(Concrete Observer)。主题(Subject):主题是被观察的对象,它包含一组观察者对象,并提供注册、注销和通知观察者的方法。主题通常维护一个状态,当状态发生变化时,会通知所有观察者原创 2023-07-13 13:37:05 · 4664 阅读 · 0 评论 -
备忘录模式:保存对象状态的解决方案
备忘录模式是一种通过保存对象状态的解决方案。它允许我们在不破坏对象封装性的前提下,捕获并保存对象的内部状态,并在需要时恢复到之前的状态。备忘录模式包含三个核心角色:发起者(Originator)、备忘录(Memento)和管理者(Caretaker)。发起者(Originator):发起者是需要保存状态的对象。它包含一个或多个内部状态,并提供保存和恢复状态的方法。发起者可以创建备忘录对象,将自己的状态保存到备忘录中,也可以从备忘录中恢复状态。备忘录(Memento):备忘录是保存发起者对象状态的容器。原创 2023-07-13 13:30:14 · 4687 阅读 · 0 评论 -
中介者模式:简化对象之间的交互
中介者模式是一种通过引入中介者对象,将对象之间的交互逻辑集中处理的设计模式。在中介者模式中,多个对象之间不直接相互通信,而是通过中介者对象来进行通信。中介者模式将对象之间的交互逻辑集中在中介者对象中,从而降低了对象之间的耦合度。中介者模式是一种简化对象之间交互的设计模式,它通过引入一个中介者对象,将对象之间的交互逻辑集中处理,从而减少对象之间的直接耦合。通过中介者模式,我们可以简化对象之间的交互,提高系统的可维护性和可扩展性。原创 2023-07-13 13:26:52 · 4706 阅读 · 0 评论 -
迭代器模式:简化集合元素遍历的设计模式
迭代器模式是一种将集合元素遍历操作抽象化的设计模式。在迭代器模式中,定义了一个迭代器接口,该接口包含了访问集合元素的方法。具体的集合类实现迭代器接口,提供了具体的迭代器对象,用于遍历集合中的元素。迭代器模式将集合的遍历操作从集合类中分离出来,使得我们可以在不暴露集合内部结构的情况下访问集合中的元素。迭代器模式是一种简化集合元素遍历操作的设计模式,它通过提供统一的遍历接口,将集合的遍历操作从集合类中分离出来,使得我们可以在不暴露集合内部结构的情况下访问集合中的元素。原创 2023-07-13 13:23:40 · 4618 阅读 · 0 评论 -
解释器模式:将语言解释为对象的设计模式
解释器模式是一种将语言解释为对象的设计模式。在解释器模式中,定义了一种语言的文法,并且建立一个解释器来解释该语言中的句子。解释器模式将每个语法规则表示为一个类,并通过组合这些类来构建语言的解释器。解释器模式可以用于解释任何需要解释的语言,例如数学表达式、查询语言等。解释器模式是一种将语言解释为对象的设计模式,它定义了一种语言的文法,并且建立一个解释器来解释该语言中的句子。通过解释器模式,我们可以灵活地解释任何需要解释的语言,实现灵活性和可扩展性。原创 2023-07-13 13:20:35 · 4515 阅读 · 0 评论 -
命令模式:将请求封装成对象的设计模式
命令模式是一种将请求封装成对象的设计模式。在命令模式中,请求被封装成一个命令对象,并提供执行该命令的方法。命令对象包含了执行该命令所需的所有信息,包括命令的接收者和执行方法。通过将请求封装成对象,命令模式实现了请求的参数化、队列化、记录日志、撤销操作等功能。命令模式是一种将请求封装成对象的设计模式,通过将请求封装成对象,命令模式可以实现请求的参数化、队列化、记录日志、撤销操作等功能。通过命令模式,我们可以解耦请求发送者和接收者,支持撤销和重做操作,以及实现请求的参数化和队列化。原创 2023-07-13 11:44:59 · 4652 阅读 · 0 评论 -
责任链模式:优雅地处理请求的设计模式
责任链模式是一种通过多个对象依次处理同一个请求的设计模式。在责任链模式中,每个处理者都有机会处理请求,如果一个处理者无法处理该请求,它会将请求传递给下一个处理者,直到请求被处理完成或者到达链的末尾。责任链模式是一种行为型设计模式,它允许多个对象依次处理同一个请求,从而避免请求的发送者和接收者之间的耦合关系。通过责任链模式,我们可以灵活地组合处理者,解耦请求发送者和接收者,并提高系统的灵活性和可扩展性。原创 2023-07-13 10:00:19 · 4747 阅读 · 0 评论 -
代理模式:控制和增强对象访问的利器
代理模式是一种通过代理对象控制和增强对另一个对象的访问的设计模式。代理模式通过引入一个代理对象,将客户端的请求转发给真实对象,并在转发请求前后执行一些附加操作,从而控制和增强对真实对象的访问。代理模式是一种通过代理对象控制和增强对另一个对象的访问的设计模式。代理模式可以用于实现许多功能,如远程访问、延迟加载、权限控制等。通过代理模式,我们可以控制和增强对真实对象的访问,隐藏真实对象的实现细节,并解耦客户端和真实对象。原创 2023-07-13 09:51:42 · 4528 阅读 · 0 评论 -
享元模式:优化对象的共享与重复利用
享元模式是一种通过共享对象来有效地支持大量细粒度对象的设计模式。它通过将对象的状态划分为内部状态和外部状态,将内部状态共享,从而减少系统中对象的数量,节省内存使用和对象创建的开销。享元模式是一种通过共享对象来优化内存使用和对象创建开销的设计模式。通过将对象的状态划分为内部状态和外部状态,并共享内部状态,享元模式可以减少系统中对象的数量,节省内存使用和对象创建的开销。享元模式适用于需要频繁创建相似对象、缓存对象以提高性能的场景。原创 2023-07-13 09:48:11 · 4582 阅读 · 0 评论 -
外观模式:简化复杂系统的访问接口
外观模式是一种通过提供一个简化的接口,隐藏系统复杂性的设计模式。它将一组复杂的子系统封装在一个外观类中,为客户端提供一个统一的接口,以简化对子系统的访问。外观模式是一种通过提供一个简化的接口,隐藏系统复杂性的设计模式。通过外观模式,我们可以简化复杂系统的访问接口,解耦客户端与子系统之间的依赖关系,并隐藏复杂系统的实现细节。外观模式适用于需要简化接口、解耦子系统、隐藏复杂性的场景。公众号请关注"果酱桑", 一起学习,一起进步!原创 2023-07-13 09:41:15 · 4548 阅读 · 0 评论 -
装饰器模式:灵活扩展功能的设计利器
装饰器模式是一种允许我们向现有对象动态添加功能的设计模式,同时又不改变其结构。它通过创建一个装饰器类,该类包装了原始对象,并在保持接口不变的情况下,提供了额外的功能。装饰器模式是一种允许我们动态地为对象添加功能的设计模式,同时又不改变其结构。通过装饰器模式,我们可以灵活地扩展对象的功能,并且遵循开闭原则。装饰器模式适用于需要动态地添加功能、细粒度控制对象功能的场景。公众号请关注"果酱桑", 一起学习,一起进步!原创 2023-07-12 18:55:28 · 4644 阅读 · 0 评论 -
组合模式:构建树形结构的灵活设计
组合模式是一种将对象组合成树形结构的设计模式。它通过使用相同的接口来处理单个对象和组合对象,使得客户端可以统一地处理它们。组合模式的目的是让客户端能够以一致的方式处理单个对象和组合对象。组合模式是一种将对象组合成树形结构的设计模式。通过组合模式,我们可以构建树形结构,并以统一的方式处理单个对象和组合对象。组合模式具有灵活性、扩展性和简化客户端代码的优点,适用于需要构建树形结构并统一处理的场景。公众号请关注"果酱桑", 一起学习,一起进步!原创 2023-07-12 18:53:08 · 4658 阅读 · 0 评论 -
桥接模式:解耦抽象与实现
桥接模式是一种将抽象部分与实现部分分离的设计模式。它通过将抽象部分和实现部分分别定义为独立的接口,并使用组合关系将它们连接起来,从而使它们可以独立地变化。桥接模式的目的是将抽象和实现解耦,使它们可以独立地扩展。桥接模式是一种将抽象部分和实现部分分离的设计模式。通过桥接模式,我们可以解耦抽象和实现,使它们可以独立地变化,并实现灵活的扩展。桥接模式具有解耦性、扩展性和可维护性的优点,适用于需要将抽象和实现分离的场景。原创 2023-07-12 18:49:38 · 4600 阅读 · 0 评论 -
适配器模式:让不兼容的接口协同工作
适配器模式是一种将一个类的接口转换为另一个接口的设计模式。它允许不兼容的接口协同工作,使得原本由于接口不匹配而无法在一起工作的类能够合作。适配器模式通过创建一个适配器类,将客户端的调用转发给适配者类,从而实现接口的适配。适配器模式是一种结构型设计模式,它允许将一个类的接口转换为客户端所期望的另一个接口。通过适配器模式,我们可以让不兼容的接口协同工作,实现接口的适配。适配器模式具有兼容性、复用性和灵活性的优点,适用于需要适配接口的场景。希望本文对您理解适配器模式有所帮助!原创 2023-07-12 18:46:16 · 4594 阅读 · 0 评论 -
设计模式之单例模式
单例模式是一种创建型设计模式,它保证一个类只有一个实例,并提供对该实例的全局访问点。换句话说,单例模式限制了某个类的实例化过程,使得该类在整个应用程序中只能存在一个对象实例。单例模式是一种常用的设计模式,用于确保一个类只有一个实例,并提供对该实例的全局访问点。它适用于需要共享对象、控制资源访问权限或控制实例数量的场景。在Java中,可以使用饿汉式或懒汉式单例模式来实现单例。在实现懒汉式单例模式时,需要注意线程安全问题。通过合理地应用单例模式,我们可以提高系统的性能和资源利用率,并简化代码的复杂性。原创 2023-07-10 13:06:54 · 4685 阅读 · 0 评论 -
建造者模式:构建复杂对象的艺术
建造者模式是一种将复杂对象的构建过程与其表示分离的创建模式。它允许您通过使用相同的构建过程来创建不同的表示,从而使您能够更加灵活地构建对象。建造者模式的关键思想是将对象的构建过程委托给不同的建造者,然后使用指导者来协调建造者的操作,最终生成所需的对象。建造者模式是一种创建型设计模式,它允许您创建复杂对象的不同部分,并将它们组装在一起,以便能够灵活地构建不同类型和表示的对象。通过建造者模式,我们可以将构建过程与表示分离,提高封装性和扩展性。原创 2023-07-12 18:29:36 · 4608 阅读 · 0 评论 -
原型模式:深入理解对象的克隆
原型模式是一种基于复制现有对象的创建模式,它通过克隆(复制)现有对象来创建新的对象。原型模式中,原型对象是被复制的对象,新创建的对象是原型对象的副本。通过使用原型模式,我们可以避免直接实例化类和耗时的对象创建过程,提高了对象的创建效率。原型模式是一种创建型设计模式,它通过复制现有对象来创建新的对象,避免了直接实例化类和耗时的对象创建过程。通过使用原型模式,我们可以提高对象的创建效率,简化对象的创建过程,并且可以动态地添加和修改对象的属性。原创 2023-07-12 18:19:48 · 4611 阅读 · 0 评论 -
简单工厂模式(Simple Factory Pattern)
简单工厂模式是一种创建型设计模式,它提供了一种创建对象的方式,而无需暴露对象的创建逻辑。通过使用一个专门的工厂类,我们可以根据不同的参数来获取不同的具体对象,从而实现对象的创建和管理。简单工厂模式是一种常用且简单的创建型设计模式,它通过一个专门的工厂类来创建对象,将对象的创建逻辑封装起来,使得客户端代码与具体对象的创建过程解耦。在实际开发中,我们可以根据需要灵活运用简单工厂模式来创建不同类型的对象。原创 2023-07-12 17:57:19 · 4472 阅读 · 0 评论 -
设计模式之策略模式 - 解决多种算法选择的问题
策略模式是一种行为型设计模式,它定义了一系列的算法,并将每个算法封装在独立的策略类中,使得它们可以相互替换。策略模式使得算法的选择和使用与算法的实现分离开来,客户端可以根据需要选择不同的策略来解决问题,而不需要关心具体的算法实现细节。环境(Context):环境类持有一个策略类的引用,它在运行时调用策略类的算法。抽象策略(Strategy):抽象策略类定义了一个公共接口,用于声明所有具体策略类所需实现的方法。具体策略(ConcreteStrategy):具体策略类实现了抽象策略类定义的算法。原创 2023-07-11 17:01:56 · 4976 阅读 · 0 评论 -
23种设计模式
23种设计模式及应用场景原创 2023-07-12 17:52:38 · 4849 阅读 · 0 评论 -
工厂方法模式(Factory Method Pattern)
工厂方法模式是一种创建型设计模式,它提供了一种将对象的创建委托给子类的方式。工厂方法模式通过定义一个创建对象的接口,但将具体的对象创建延迟到子类中实现。这样可以在不改变客户端代码的情况下,通过添加新的子类来创建不同的对象。工厂方法模式是一种非常灵活的模式,它允许我们根据需要动态地创建具体对象,而无需在客户端代码中直接实例化对象。这样可以提高代码的可扩展性和可维护性。工厂方法模式是一种常用且灵活的创建型设计模式,它通过将对象的创建委托给子类来实现对象的创建和管理。原创 2023-07-12 18:00:30 · 4508 阅读 · 0 评论
分享