Java设计模式实战
文章平均质量分 95
《Java 设计模式实战》专栏:深度剖析 Java 设计模式精髓,以实战项目为基石,从经典模式到前沿应用,精准解读设计思路与代码实现。无论是优化现有架构,还是构建全新系统,这里都将为您呈上开启高效、灵活、可维护 Java 编程世界的金钥匙,助您代码技艺飞升,引领技术前沿风尚。
程风破~
CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/?__c=1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编程,高并发设计,Springboot和微服务,熟悉Linux,ESXI虚拟化以及云原生Docker和K8s,热衷于探索科技的边界,并将理论知识转化为实际应用。在这里,我希望能与志同道合的朋友交流探讨,共同进步,一起在技术的世界里不断学习成长。技术合作请加本人wx(注明来自csdn):foreast_sea
展开
-
Java 23种设计模式(全)整体概述:附代码示例
设计模式是为解决软件设计中通用问题而被提出的一套指导性思想。它是一种被反复验证、经过实践证明并被广泛应用的代码设计经验和思想总结,可以帮助开发者通过一定的模式来快速地开发高质量、可维护性强的软件。设计模式描述了在软件开发过程中不断重复出现的问题及其解决方案,旨在提高软件系统的可维护性可扩展性可重用性和灵活性。设计模式不仅关注代码的可靠性可读性和可重用性,还强调代码的易理解性,帮助开发者通过特定的模式快速开发高质量高可维护性的软件。设计模式在软件开发人员中非常流行。原创 2024-08-29 00:15:00 · 1520 阅读 · 15 评论 -
Java行为型设计模式-备忘录模式
备忘录(Memento)模式是软件设计模式中的一种,属于行为型模式,其目的是保存对象当前状态,以便在未来的某个时间点恢复对象到这个状态。在不破坏封装性的前提下,捕获并保存对象的内部状态,这样可以在对象之后恢复到保存的状态。// Originator 类// Memento 类// Caretaker 类Move类用于表示棋子的位置。this.x = x;this.y = y;return x;return y;// 模拟棋盘上的移动。原创 2024-08-28 00:15:00 · 804 阅读 · 7 评论 -
Java行为型设计模式-迭代器模式
/ 迭代器接口// 容器接口void eat();System.out.println("狗正在吃东西");System.out.println("猫正在吃东西");综上,迭代器模式是一种行为型模式,它提供了一种顺序访问聚合对象(如列表、集合等)中的元素的方法,而无需暴露聚合对象的内部表示。迭代器模式的使用场景主要包括访问一个聚合对象的内容而无须暴露其内部表示需要为聚合对象提供多种遍历方式为遍历不同的聚合结构提供一个统一的接口。迭代器模式具有,等优点,同时也伴随着一定的系统。原创 2024-08-28 00:15:00 · 1204 阅读 · 30 评论 -
Java行为型设计模式-状态模式(含电梯场景示例)
状态模式)是一种行为型设计模式,它允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类。状态模式的目的是让状态转换显式,并且使得状态转换代码集中在一个地方,不需要使用多重条件语句。状态模式)用于解决系统中对象的行为依赖于其状态变化的问题。在状态模式中,我们将每一个状态转换到另一个状态的行为封装在一个状态类中。综上,状态模式(State Pattern)允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类。状态模式的目的是让状态转换显式。原创 2024-08-24 06:00:00 · 1155 阅读 · 19 评论 -
Java行为型设计模式-命令模式(含多级撤销示例)
命令模式(Command Pattern)是一种数据驱动的设计模式,它属于行为型模式。请求以命令的形式包装在对象中,并传递给调用对象。调用对象寻找可以处理该命令的合适对象,并执行命令。在这种模式中,我们创建代表某个操作的类,该操作可以是任何事情,比如执行一个方法、改变一个属性等。命令模式(Command Pattern)的核心是将请求封装为一个对象,从而使你可以使用不同的请求、队列或者日志请求、提供的方式参数化其他对象。命令对象可以有不同的接口,使得调用操作的方式和处理操作的方式解耦。2. 命令模式角色。原创 2024-08-23 09:34:03 · 956 阅读 · 17 评论 -
Java行为型设计模式-解释器模式(含四则运算示例)
解释器模式(Interpreter Pattern)是一种行为型设计模式,它用于解决特定问题或实现特定功能的类库或工具。在解释器模式中,我们定义了一种语言,用于解释或执行特定任务。它将每个语法规则定义为一个类,并使用这些类的组合来构建语言的表达式。解释器模式用于描述如何构成一个简单的语言解释器。它主要用于使用面向对象语言开发的编译器和解释器设计。解释器模式的核心在于定义一个语言的文法,并建立一个解释器来解释该语言中的句子。这里的“语言”指的是使用规定格式和语法的代码。原创 2024-08-25 23:01:33 · 916 阅读 · 13 评论 -
Java行为型设计模式-访问者模式(含二叉树场景示例)
访问者模式(Visitor Pattern)是一种行为型设计模式。访问者模式在Java中提供了一种有效的方式来扩展系统的功能,同时保持对象结构的稳定性。访问者模式在处理复杂的数据结构和操作集合时非常有用,它能够有效地降低代码的耦合度,能极大提高代码的可维护性和可扩展性。然而,它也有其固有的缺点,特别是在增加新元素类和修改现有元素时可能会遇到挑战。因此,在设计系统时,需要根据具体的需求和约束来决定是否使用访问者模式。原创 2024-08-25 00:20:58 · 982 阅读 · 29 评论 -
Java创建型设计模式-抽象工厂模式
我们将针对此图进行编程,着重介绍抽象工厂模式。总的来说,抽象工厂模式适用于需要创建一组相关产品,同时具备高度灵活性和可维护性的场景。抽象工厂模式是一种设计模式,它属于创建型模式,主要用于构建产品族。这种模式当有多个抽象角色时使用,向客户端提供一个接口,使得客户端在不必指定产品的具体情况下,能够创建多个产品族中的产品对象。抽象工厂模式是所有工厂模式中最抽象和最具一般性的一种形态,它针对的是多个产品族结构,而不是单个产品系列结构。。原创 2024-08-10 06:00:00 · 1390 阅读 · 16 评论 -
Java创建型设计模式-工厂模式
工厂设计模式中的超类可以是接口抽象类或普通 Java 类。对于我们的工厂设计模式示例,我们有一个抽象超类,其中重写了 toString()方法以用于测试目的。@Override假设我们的计算机Computer有两个子类PC和Server。PC类的实现@Override@Override@OverrideServer类的实现@Override@Override@Override关于工厂设计模式方法的一些要点是;我们可以保留工厂类。原创 2024-08-10 06:00:00 · 1169 阅读 · 8 评论 -
Java创建型设计模式-单例模式
好啦,以上就是关于java设计模式的单例模式详细介绍,整理出八种初始化方式及其利弊分析,最佳方式推荐是3.4章节的线程安全单例。原创 2024-08-10 06:00:00 · 1960 阅读 · 9 评论 -
Java创建型设计模式-建造者模式
以上就是关于建造者模式的详细介绍,你学会了吗?从建造者模式的产生背景,原理,以及代码示例、优缺点分析等多维度进行了阐述。相信通过本文的学习,大家对建造者模式有了更加深入的认识!工厂模式抽象工厂模式。原创 2024-08-10 06:00:00 · 2108 阅读 · 8 评论 -
Java结构型设计模式-复合模式
复合设计模式是Java中的一种结构型设计模式,它用于表示部分-整体的层次结构。当需要创建一种结构,其中结构中的对象必须以相同的方式对待时,可以使用复合设计模式。例如,一个图表可以由圆形、直线、三角形等对象组成,当我们用颜色填充图表时,相同的颜色也会应用到图表中的各个对象上。这里的图表由不同的部分组成,并且它们都有相同的操作,这就是复合设计模式的典型应用场景。复合设计模式允许用户以一致的方式处理单个对象和对象组合。。原创 2024-08-11 06:00:00 · 1024 阅读 · 18 评论 -
Java结构型设计模式-享元设计模式
是一种软件设计模式,属结构型设计模式。类似于外观模式适配器模式和装饰模式。这个角色为具体享元角色规定了必须实现的方法,在Java中可以是抽象类或接口。它定义了享元对象的接口,但不涉及具体的实现细节。享元模式适用于存在大量相似对象的场景,特别是当对象的内部状态较少并且可以共享时。这种模式通过内部状态和外部状态的分离,使得外部状态的改变可以在外部进行设置,尽管这可能会带来一定的复杂性,但总体而言,享元模式在处理大量相似对象时表现出色。。原创 2024-08-12 06:00:00 · 1017 阅读 · 9 评论 -
Java结构型设计模式-外观模式
Java外观设计模式(Facade Design Pattern)是一种结构型模式,它为子系统中的一组接口提供一个统一的高层接口。外观模式定义了一个高层接口,这个接口使得子系统更容易使用。外观设计模式的主要目的是为一个复杂的子系统提供一个简单的接口。它的核心是定义一个外观类,这个类为子系统中的多个模块提供一致的接口。客户端只需要与外观类交互,无需直接访问子系统内部的多个模块。综上,外观模式的核心思想是。原创 2024-08-21 11:26:44 · 826 阅读 · 5 评论 -
Java结构型设计模式-适配器模式
适配器设计模式是一种结构型模式,允许将现有类的接口用作另一个接口。它充当两个不兼容接口之间的桥梁,使它们协同工作。此模式涉及一个称为适配器的类,该类负责连接独立或不兼容接口的功能。让我们用一个简单的例子来理解这个概念:假设你有两个朋友,一个只会说英语,另一个只会说法语。你想让他们交流,但存在语言障碍。你充当一个适配器,在他们之间翻译信息。你的角色允许英语使用者向你传达信息,而你则将这些信息转换为法语,供对方使用。这样,尽管语言不同,你的适应能够让你的朋友之间顺利交流。原创 2024-08-11 06:00:00 · 1406 阅读 · 17 评论 -
Java结构型设计模式-装饰器模式
装饰器模式是一种结构型设计模式,它允许在运行时动态地向对象添加新的职责或功能,同时保持对象的原始类不变。这种模式通过创建一个包装对象(装饰器)来包裹真实对象,增加额外功能,同时确保客户端能以相同的方式与装饰后的对象交互。装饰器模式的主要目的是动态地为对象添加新的功能,而无需改变其结构。它通过将对象包装在一个装饰器类的实例中来实现,这个装饰器类实现了相同的接口,并在调用基础对象的同时添加额外的功能。这种模式提供了一种灵活的方式来扩展对象的功能,同时避免了类的爆炸性增长和代码的耦合。原创 2024-08-21 10:19:32 · 928 阅读 · 7 评论 -
Java结构型设计模式-代理模式
代理模式()是常用的结构型设计模式之一,其定义如下:Provide a surrogate or placeholder for another object to control access to it.(为其他对象提供一种代理以控制对这个对象的访问。关于代理模式介绍就到这里,通过本文的学习,我们清楚知道代理设计模式的主要用途是控制访问或提供包装器实现以获得更好的性能。原创 2024-08-12 06:00:00 · 1364 阅读 · 27 评论 -
Java行为型设计模式-中介者模式
Java中介者模式(Mediator Pattern)是一种行为型设计模式,用于管理一组对象之间的通信。它通过引入一个独立的第三方角色(称为“中介者”),让各对象之间不再直接相互依赖,从而降低了它们之间的耦合度。综上,中介者模式是一种行为型设计模式,它用于解耦一组对象,让它们之间的通信通过一个独立的第三方(中介者)进行。这种模式避免了直接的对象之间硬编码的依赖,使得各个对象只需关注自身的业务逻辑,而将交互的协调工作交给中介者处理。原创 2024-08-14 08:00:00 · 1306 阅读 · 18 评论 -
Java行为型设计模式-责任链模式
责任链模式()是一种行为型设计模式,它允许多个对象处理一个请求,每个对象都有机会处理请求,如果处理不了则传递给下一个对象,直到请求被处理或没有对象可以处理。责任链模式的主要目的是通过减少请求发送者和接收者之间的耦合度来提高系统的灵活性和可扩展性。它通过将处理请求的责任分配给一系列的对象,每个对象都有机会处理请求,如果当前对象无法处理请求,则将请求传递给下一个对象,直到找到能够处理请求的对象。原创 2024-08-16 13:36:32 · 1570 阅读 · 20 评论 -
Java行为型设计模式-模板方法模式
模板方法模式是一种行为型设计模式,用于创建方法存根并将一些实现步骤推迟到子类。模板方法定义执行算法的步骤,并且可以提供默认实现,该实现可能对所有或部分子类通用。模板方法模式是软件工程中一个常用的设计模式,其定义了一个操作的算法骨架,将某些步骤推迟到子类中实现。模板方法使得子类可以不改变算法结构的情况下重定义某些步骤的具体实现。综上,在Java中,模板方法模式是一种行为型设计模式,它定义了一个算法的骨架,将某些步骤延迟到子类中实现。这样,子类可以不改变算法结构的同时,重新定义这些步骤。模板方法模式的。原创 2024-08-17 06:00:00 · 2153 阅读 · 13 评论 -
Java行为型设计模式-策略模式
Java策略模式(Strategy Pattern)是一种行为型设计模式,它允许你在运行时改变对象的行为,而不改变其结构。这种模式的核心思想是将算法或行为封装在不同的对象中,然后让客户端在运行时选择合适的策略来执行。这种模式使得算法可以独立于使用它的客户端变化,从而增强了系统的灵活性和可维护性。// 定义策略接口综上,策略模式是一种行为型设计模式,它允许你在运行时改变对象的行为。这种模式的核心思想是将一系列可互换的算法封装成独立的策略类,并在运行时根据需要选择使用哪个策略。。原创 2024-08-14 08:00:00 · 1195 阅读 · 12 评论 -
Java创建型设计模式-原型模式
原型模式是一种创建型设计模式,它允许通过复制一个已经存在的对象来创建一个新的对象,而无需重新实例化。这种模式特别适用于那些需要创建类似对象的情况,可以避免重复的代码和资源浪费。原型模式的核心在于提供一个原型对象,通过这个原型对象来生成其他对象,而不需要知道这些对象的类结构。在本文,我们学习了Java的一种创建型设计模式原型模式,知道它拥有原型接口具体原型类客户端和克隆方法四个角色,还阐述了原型模式的使用场景,以及呈现了原型模式的代码示例,相信大家应该对原型模式不陌生了!!原创 2024-08-11 06:00:00 · 1023 阅读 · 8 评论 -
Java结构型设计模式-桥梁模式
桥梁(Bridge)设计模式是一个结构型设计模式,主要目的是通过将抽象部分与它的实现部分分离,使它们都能独立地变化。桥接设计模式用于将接口与实现分离,并向客户端程序隐藏实现细节。桥梁设计模式通常涉及到一个抽象类和它的一个实现类,这两者通过合作来完成具体的行为。这个实现类可能会有多个,它们都实现了抽象类的接口,但是提供了不同的实现方式。桥梁模式通过将抽象和实现解耦,使得两者可以独立地变化,这种解耦使得系统更加灵活,能够适应更多的变化。原创 2024-08-12 06:00:00 · 985 阅读 · 11 评论 -
Java行为型设计模式-观察者模式
观察者模式(Observer Pattern)是行为型设计模式之一,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。在Java中,观察者模式通常通过java.util.Observable类和java.util.Observer接口实现,但是由于Observable类的方法都是同步的,可能会影响程序的灵活性和并发性,因此在Java 1.0版本之后,推荐使用Java.util.concurrent包下的。原创 2024-08-21 08:04:33 · 967 阅读 · 25 评论 -
【Java 解释器模式】实现高扩展性的医学专家诊断规则引擎
解释器模式是一种行为设计模式,它定义了一种语言的语法规则,并提供了一个解释器来解释该语言中的语句。在我们的案例中,这种语言就是由各种知识规则组成的规则集。抽象表达式(Abstract Expression):声明一个抽象的解释操作,该操作被具体的子表达式所实现。它是所有具体表达式的父类,定义了统一的接口。终结符表达式(Terminal Expression):实现了抽象表达式接口,代表语言中的终结符,如我们规则中的具体症状(发烧、咳嗽等)。原创 2024-11-24 18:12:18 · 1030 阅读 · 23 评论 -
Java设计模式之状态模式架构高扩展的订单状态管理
状态模式属于行为型设计模式。它的核心思想是将对象的行为封装在不同的状态类中,当对象的内部状态发生改变时,其行为也会随之改变,而这种改变对于外部使用者来说是透明的。上下文(Context):它是持有状态的对象,通常会定义一个抽象的状态接口,并维护一个当前状态的引用。上下文对象将具体的状态处理委托给当前状态对象。例如在订单管理中,订单对象就是上下文,它包含了订单的基本信息以及当前的订单状态。抽象状态(State):定义了一个接口,用于封装与特定状态相关的行为。在订单状态管理中,这可以是一个名为。原创 2024-12-03 10:48:30 · 1875 阅读 · 26 评论 -
Java 享元模式:打造高扩展游戏角色模型,优化 MMO 游戏开发
享元模式是一种结构型设计模式,它旨在通过共享对象来减少内存使用和提高性能。其主要思想是将对象的状态分为内部状态和外部状态。创建一个抽象类或接口来表示怪物模型享元对象,该抽象类或接口定义了与怪物模型相关的操作方法。// 怪物模型抽象类// 抽象方法,用于绘制怪物模型在这个示例中,是一个抽象类,它定义了一个抽象方法draw,用于绘制怪物模型。具体的怪物模型类(如)将继承自这个抽象类并实现draw方法。如前面所述,通过共享怪物模型数据(内部状态),大大减少了内存中数据的冗余存储。原创 2024-12-07 11:59:18 · 3724 阅读 · 75 评论