
设计模式
文章平均质量分 89
设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。
jpq+
无bug无江湖
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
解析器模式:面向对象设计中的表达式评估与语法树构建策略
解释器模式(Interpreter Pattern)是一种行为设计模式,它定义了一种语言,并使用该语言来解释句子。这种模式用于描述如何构成一个简单的语言解析器。在Java中实现解释器模式通常涉及一个抽象表达式接口、具体表达式类(终端表达式和非终端表达式)、以及上下文环境类。原创 2024-04-14 13:10:37 · 1091 阅读 · 0 评论 -
七大设计原则
在软件开发的领域中,随着技术的不断进步和市场需求的不断变化,软件系统的设计和维护变得越来越重要。为了确保软件系统能够长期有效地运行,并且能够在未来的发展中适应新的需求和技术变化,提高软件系统的可维护性和可复用性成为了开发过程中的关键目标。此外,增加软件的可扩展性和灵活性也至关重要,因为它们可以确保软件系统能够轻松地添加新功能或者修改现有功能,而不会引发大量的结构重组或代码重写。为了实现这些目标,程序员在开发程序时应该遵循一系列的设计原则。原创 2024-04-14 11:20:25 · 1092 阅读 · 0 评论 -
Java设计模式:桥接模式实现分离抽象与实现以增强对象复用性
桥接模式是一种结构型设计模式,它通过将抽象部分与它的实现部分分离,使它们都可以独立地变化。它是一种对象结构型模式,又称为接口(Interface)模式。这种模式涉及到一个作为桥接的接口,使得实体类的功能独立于接口实现类,这两种类型的类可以结构化的改变而不会相互影响。原创 2024-04-09 14:58:03 · 1104 阅读 · 0 评论 -
使用访问者模式优化Java对象结构,实现操作与数据的逻辑分离
尽管访问者模式在实际应用中非常有用,但它也是 GOF23 中设计模式中最复杂的一个。这主要是因为它的实现涉及到多个类之间的交互和协作。访问者模式的核心思想是将数据结构和操作分离,通过引入一个访问者类来封装对数据结构的访问和操作。这样,当数据结构发生变化时,只需要修改访问者类,而不需要修改数据结构本身。然而,访问者模式的复杂性也导致了它的使用场景相对有限。系统需要在运行时动态地添加新的操作。系统需要对一个复杂的对象结构进行操作,而这些操作无法通过其他方式来实现。原创 2024-04-05 08:43:04 · 779 阅读 · 0 评论 -
运用抽象工厂模式实现多个产品族的独立创建与组合管理
是一种软件设计模式,属于创建型设计模式类别,主要用于处理对象的创建过程,特别是在应对具有多个相关或相互依赖对象的特定上下文时。该模式的主要目的是将一组相关或者相互依赖的对象的创建过程封装到一个单独的接口中,使得客户端可以通过统一的方式来创建并使用这些对象,同时隐藏了具体的实现细节。原创 2024-04-03 09:53:28 · 809 阅读 · 0 评论 -
简化对象间交互:Java中介者模式实践
中介者模式 (Mediator Pattern) 是一种在软件设计中用来降低多个对象或组件间的耦合度的设计模式,它属于行为型设计模式。在 Java 中,中介者模式的核心思想是定义一个中介对象,让原本相互依赖的对象之间通过中介者进行通信,而不是直接相互引用。这样可以使各个对象之间的关系更加清晰,更容易维护和扩展。以上都是现实生活中的中介者模式应用场景,它们的核心都是引入了一个独立的角色,来管理和协调多方面的交互关系,从而使得各参与方可以专注于自身的核心功能,同时保持系统运行的有序和高效。原创 2024-04-03 09:52:55 · 1228 阅读 · 0 评论 -
Java状态模式:解构行为随状态变化的优雅设计与实现策略
在一个ATM机系统中,环境类可能是ATM机器本身,而状态类可以是“取款中”、“存款中”、“查询余额中”等具体状态。每种状态下ATM的行为不同,如“取款中”状态下可以执行取款操作和退卡操作,而在“查询余额中”状态下只能查询余额。在软件开发中,有些对象的行为取决于其内部状态,而且这些状态可能在运行时发生变化。状态模式就是为了解决这一问题而诞生的。在使用状态模式实现订单状态管理时,可以为每个订单状态定义一个独立的状态类。状态模式允许对象在其内部状态改变时改变其行为,使得对象看起来像是改变了它的类。原创 2024-03-15 17:02:31 · 1560 阅读 · 0 评论 -
掌握高级设计原则:Java中的过滤器模式解析与实战演练,构建灵活且可扩展的系统架构
过滤器模式是一种结构型设计模式,它允许开发者使用不同的标准来过滤一组对象,并通过逻辑运算以解耦的方式将它们联系起来。过滤器模式的核心在于提供了一个处理对象的机制,这个机制可以根据一个或多个标准来决定哪些对象应该被接受、哪些应该被排除。这种模式通常用于实现复杂的数据筛选和处理逻辑,尤其是在需要将数据处理过程分解为多个独立步骤时。过滤器模式允许动态地组合多个过滤条件,以便从一组对象中选择出满足特定标准的对象集合。通过将不同的过滤器加入到 AndCriteria 中,可以灵活地控制筛选结果。原创 2024-03-15 13:08:37 · 1089 阅读 · 0 评论 -
java组合模式揭秘:如何构建可扩展的树形结构
组合模式(Composite Pattern)是一种结构型设计模式,它允许将对象组合成树形结构以表示整体/部分层次结构。组合模式使得客户端可以统一对待单个对象和组合对象,从而使得客户端可以处理更复杂的结构。原创 2024-03-14 10:57:13 · 1111 阅读 · 0 评论 -
Java原型模式深度解析:对象复制的艺术与实现
原型模式是一种创建型设计模式,它通过复制现有对象来创建新对象,而不是通过实例化新对象。在Java中,可以通过实现Cloneable接口并重写clone()方法来实现原型模式。在Java中,克隆对象可以通过以下两种方式实现:**实现Cloneable接口:**需要克隆的类应该实现Cloneable接口。这个接口是一个标记接口,没有任何方法,但是它向JVM表示这个类的对象可以被克隆。**重写clone()方法:**在实现了Cloneable接口的类中,需要重写Object类的clone()方法。原创 2024-03-12 09:35:33 · 527 阅读 · 0 评论 -
掌握Java建造者模式:逐步构建复杂对象的艺术与实践
建造者模式的主要目的是将一个复杂对象的构建过程封装起来,使得客户端代码不需要知道对象创建的细节。这种模式特别适用于那些具有多个组成部分、创建过程复杂、对象属性多且大多数属性可选的场合。以下是建造示例产品的代码:Product类表示复杂对象,Builder类是抽象建造者类,ConcreteBuilder1和ConcreteBuilder2是具体的建造者类,buildPartA;b;c用来代指构建产品的不同部分,Director类负责指挥构建过程,Client类是客户端代码。原创 2024-03-09 19:55:00 · 1317 阅读 · 0 评论 -
Java设计模式深度解析:掌握工厂模式,优化对象创建与管理
工厂模式是一种创建型设计模式,它提供了一种在不指定具体类的情况下创建对象的方法。在Java中,工厂模式可以通过接口和实现类来实现。比如我们建一个外形工厂,工厂提供对外的获取外形方法,传入不同的参数即可获取不同的外形。原创 2024-03-09 18:15:07 · 1075 阅读 · 0 评论 -
深度探索Java享元模式,一种卓越而高效的内存管理策略与性能优化解决方案
享元模式的核心思想是将对象的状态分为内部状态和外部状态。内部状态是对象共享的,不会随着环境的改变而改变,因此可以共享。外部状态则是随环境变化的,不能共享。原创 2024-03-08 16:11:25 · 891 阅读 · 0 评论 -
掌握java模板方法模式,提升代码复用与扩展的艺术
Java 模板方法模式是一种行为型设计模式,它定义了一个算法的骨架,并将一些步骤延迟到子类中实现。模板方法模式使得子类可以在不改变算法结构的情况下重定义算法中的某些步骤。使用场景。原创 2024-03-01 17:37:28 · 730 阅读 · 0 评论 -
监听者的力量:探索观察者模式和spring使用
观察者模式是一种对象行为型设计模式,它定义了对象之间的一对多依赖关系。观察者模式通常用于实现分布式事件处理系统、新闻代理或MVC框架的一部分。在这种模式中,一个对象(称为“主题”或“可观察对象”)维护一系列依赖于它的对象(称为“观察者”),并在其状态发生变化时自动通知所有观察者。这种模式的主要目的是确保观察者对象在主题对象的状态改变时得到更新。原创 2024-02-27 14:10:24 · 1103 阅读 · 0 评论 -
Java单例模式:掌握创建线程安全的高效单例实例的五种方法
单例模式是一种常用的软件设计模式,它的核心目标是确保一个类只有一个实例,并提供该实例的全局访问点。原创 2024-02-14 09:43:22 · 1210 阅读 · 0 评论 -
代理模式:带你玩转对象控制
代理模式(Proxy Pattern)是一种常用的结构型设计模式,它通过为对象提供一个替身(代理),以控制对这个对象的访问。代理对象作为客户端和目标对象之间的中介,可以在不改变原对象的基础上提供额外的功能操作,如安全控制、缓存处理、懒加载等。原创 2024-02-13 17:38:18 · 1045 阅读 · 0 评论 -
适配器模式:接口转换的艺术,让不匹配成为过去式
目标(Target)定义客户端所期望的接口。可以是具体的类或者抽象类。适配者(Adaptee)拥有一个已经存在的接口,该接口与目标接口不兼容。这个已有的接口通常是一个没有继承和实现关系的旧接口。适配器(Adapter)充当适配器的角色,实现目标接口。持有适配者的实例,通过适配者来实现目标接口的方法。负责将适配者的功能转换为目标接口期望的形式。客户端(Client)使用目标接口来调用适配器的方法。客户端只知道目标接口,并不知道适配器和适配者的存在。原创 2024-02-13 09:34:57 · 1426 阅读 · 0 评论 -
揭秘外观模式:简化复杂系统的关键设计策略
外观模式(Facade Pattern)是一种结构型设计模式,它隐藏了系统的复杂性,并向客户端提供了一个可以访问系统的接口。这种类型的设计模式向现有的系统添加一个接口,来隐藏系统的复杂性。这种模式涉及到一个单一的类,该类提供了客户端请求的简化方法和对现有系统类方法的委托调用。在软件工程中,外观模式主要用于简化接口和封装调用,特别是当需要调用多个复杂的子系统时。通过引入一个高层接口,外观模式能够使得子系统更加容易使用。原创 2024-02-12 18:52:07 · 1001 阅读 · 0 评论 -
装饰器模式:轻松扩展功能,无需修改原有代码!
装饰器模式是一种结构型设计模式,它允许在运行时动态地给对象添加额外的职责。装饰器模式的核心思想是使用一个包装类(装饰器)包裹原始对象,从而控制对原始对象的访问。原创 2023-12-16 14:26:18 · 220 阅读 · 1 评论 -
揭秘迭代器模式:高效遍历的秘密武器
迭代器模式是一种行为设计模式,它提供了一种方法来访问一个容器对象中各个元素,而又不暴露该对象的内部细节。假设我们有一个书架,上面摆放着许多书籍。我们想逐一查看每一本书的标题,但是不想去了解书架内部是如何组织书籍的。这时候,我们可以把书架比作一个聚合对象,每本书就是聚合对象中的一个元素。现在,我们想要一种方式能够顺序地查看每一本书的标题,但又不想直接去操作书架内部的结构。这时候,我们可以使用迭代器模式。原创 2024-02-09 12:28:20 · 639 阅读 · 0 评论 -
灵活应对:策略模式在软件设计中的应用
策略模式是一种行为型设计模式,它允许定义一系列算法,并将每个算法封装起来,使它们可以互换使用。策略模式让算法的变化独立于使用算法的客户端,使得在不修改原有代码的情况下切换或扩展新的算法成为可能。使用策略模式的场景包括但不限于:当存在多种实现方式,且需要在运行时根据不同条件动态选择具体实现时。例如,一个购物应用可能需要根据用户的会员等级来计算折扣,不同等级对应不同的计算方式,这时就可以使用策略模式来实现。当存在一组类似的行为,实现细节略有不同,但又不希望通过继承来添加新的子类时。原创 2024-02-04 10:20:29 · 1279 阅读 · 0 评论 -
揭秘备忘录模式:打造灵活高效的状态管理解决方案
备忘录模式(Memento Pattern)是一种行为设计模式,它允许在不暴露对象内部状态的情况下捕获和恢复对象的内部状态。这种模式主要用于实现撤销操作。在 Java 中,备忘录模式通常包括以下三个角色:发起人(Originator):负责创建一个备忘录对象,用于存储其内部状态,并可以恢复之前的状态。备忘录(Memento):负责存储发起人的内部状态。管理者(Caretaker):负责保存和提供备忘录对象。原创 2024-02-03 15:10:20 · 838 阅读 · 0 评论 -
Java 责任链模式详解
责任链模式是一种行为设计模式,它允许多个对象处理一个请求,从而避免了请求的发送者和接收者之间的耦合关系。在这种模式中,通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,依此类推。在Java源码中,责任链模式通常用于实现一系列的处理器,这些处理器按照顺序处理请求。原创 2023-11-22 15:00:57 · 602 阅读 · 1 评论