自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(207)
  • 收藏
  • 关注

原创 静态代理和装饰者模式

二者都遵循“组合”的设计思想,并且都要求代理类/装饰者类和目标类/被装饰类实现相同的接口(或继承相同的抽象类)。二者都可以在不修改原有类代码的前提下,对原有对象的功能进行增强。它们都是通过在调用原有对象方法的前后添加额外的代码逻辑来实现功能的扩展。类都持有一个实现了公共接口的对象引用,并且在实现接口方法时会调用该对象的对应方法,同时可以添加额外的逻辑。从上述代码可以看出,静态代理的。

2025-03-27 11:38:04 343

原创 动态代理扑克牌场景

下面将为你呈现一个运用 Java JDK 动态代理实现的扑克牌游戏示例。在这个例子里,会有一个扑克牌接口以及对应的实现类,同时借助动态代理在扑克牌操作前后添加额外的逻辑,像日志记录之类的。

2025-03-27 11:37:50 206

原创 创建型模式思想

创建型模式是软件开发中用于对象创建的设计模式,主要包括单例模式、工厂模式(简单工厂、工厂方法、抽象工厂)、建造者模式、原型模式。

2025-03-27 11:37:35 128

原创 代理模式Proxy

代理模式是一种结构型设计模式,它允许你通过创建一个代理对象来控制对另一个对象(目标对象)的访问。代理对象充当了客户端和目标对象之间的中介,客户端通过代理对象与目标对象进行交互。

2025-03-25 09:52:01 447

原创 享元模式扑克牌的场景

扑克牌的场景,我们可以分析扑克牌的特点来设计享元模式。扑克牌有 4 种花色(黑桃、红桃、梅花、方块)和 13 种牌面(A、2 - 10、J、Q、K),还有大小王。花色和牌面可以看作内部状态进行共享,而扑克牌在游戏中的具体位置、是否被打出等信息可作为外部状态。

2025-03-25 09:48:46 298

原创 在享元模式里,内部状态和外部状态是两个关键概念

在享元模式里,内部状态和外部状态是两个关键概念,它们的合理划分有助于实现对象的共享,进而提升系统性能并减少内存占用。

2025-03-25 09:31:48 880

原创 享元模式面试题

以下从不同角度为你列出一些关于享元模式的思考问题,这些问题有助于你深入理解和应用该设计模式:MapMap。

2025-03-25 09:20:29 136

原创 享元模式中的享元工厂

综上所述,享元模式的享元工厂和简单工厂模式虽然在封装对象创建逻辑和解耦方面有相似之处,但它们的核心目的、对象管理方式和适用场景是不同的。

2025-03-25 09:14:47 366

原创 享元模式(Flyweight Pattern)

享元模式(Flyweight Pattern)是一种结构型设计模式,旨在通过共享对象来减少内存使用和提高性能。它主要用于处理大量细粒度对象的场景,这些对象在某些方面具有相同的属性,通过共享这些公共属性的对象,可以避免创建大量重复对象,从而节省系统资源。

2025-03-25 08:55:50 344

原创 枚举之解析

Planet。

2025-03-25 08:35:04 138

原创 抽象(Abstraction)和实现(Implementor)的职责分别是什么?

抽象角色负责定义系统的高层业务逻辑和接口,它为客户端提供了一个统一的操作界面。客户端通过与抽象角色进行交互,而不需要关心具体的实现细节。例如,在图形绘制系统中,抽象角色可能定义了绘制图形的基本操作,如draw()方法,客户端只需要调用这个方法就可以完成图形的绘制,而不需要知道图形是如何具体绘制的。实现角色负责定义具体实现的接口,这个接口中声明的方法通常是具体实现的基本操作。抽象角色通过调用这些方法来完成具体的功能。例如,在图形绘制系统中,Color接口定义了方法,用于将颜色应用到图形上,抽象的Shape。

2025-03-25 08:33:36 339

原创 组合模式(Composite Pattern)

组合模式(Composite Pattern)是一种结构型设计模式,它允许你将对象组合成树形结构以表示“部分 - 整体”的层次关系,使得用户对单个对象和组合对象的使用具有一致性。

2025-03-25 08:33:27 383

原创 组合模式确实在表现形式上有点像对象集合

而普通对象集合也可以对集合中的所有对象进行统一的操作,比如遍历集合,对每个对象执行相同的方法。综上所述,虽然组合模式在某些方面和对象集合有相似之处,但它更强调“部分 - 整体”的层次结构、操作的递归性以及接口的一致性,是一种用于处理复杂层次关系的设计模式。组合模式要求叶节点和组合节点实现相同的抽象接口,客户端可以用统一的方式处理它们,无需区分是单个对象还是组合对象。普通对象集合中的对象不一定需要实现相同的接口,集合只是一个存储对象的容器,对对象的操作可能因对象类型而异。从代码结构看,组合模式中的组合节点(

2025-03-25 08:33:19 277

原创 组合模式(Composite Pattern)面试题

通过这些问题,你可以深入理解组合模式的设计哲学、适用场景和潜在挑战,同时避免在实际项目中误用或过度设计。

2025-03-25 08:33:10 399

原创 组合模式 UML 类图

【代码】组合模式 UML 类图。

2025-03-25 08:32:45 198

原创 桥接模式中,Implementor(实现者)可以有多个具体实现

是的,Implementor 可以有多个具体实现。桥接模式通过分离抽象与实现,允许两者独立扩展,并通过组合(而非继承)的方式动态绑定不同的实现。这种设计使得系统更加灵活、可维护,并能有效应对多维度变化的需求。

2025-03-25 08:32:36 588

原创 结构型模式类图

适配器:转换接口。桥接:解耦抽象与实现。组合:树形结构。装饰者:动态添加功能。外观:简化子系统。享元:共享对象。代理:控制访问。所有模式均通过组合或继承实现对象间的协作,核心目标是解耦和复用。

2025-03-25 08:32:20 185

原创 外观模式(Facade Pattern)

让代码更简洁、易维护。它是重构复杂代码、简化系统交互的利器,尤其适合大型系统或需要分层设计的场景。,简化客户端与子系统的交互,同时降低系统的耦合度。是一种结构型设计模式,其核心思想是。

2025-03-25 08:32:01 352

原创 为什么说桥接模式的核心是“分离抽象与实现”?这里的“实现”指什么?

如果要添加一种新的颜色,只需要在颜色的实现层次上创建一个新的类,而不会影响到形状的定义。例如,在一个跨平台的应用程序中,抽象部分可以定义统一的接口,而实现部分可以针对不同的操作系统(如 Windows、Linux、Mac OS)提供不同的实现。“实现”指的是抽象部分所依赖的具体功能或特性的实现细节,它可以是具体的功能实现、不同平台或环境的实现,也可以是不同的策略或算法实现。这样,增加新的形状或颜色时,只需要在相应的抽象或实现层次上添加新的类,而不会影响到其他部分,从而避免了类爆炸问题。

2025-03-24 15:33:12 325

原创 桥接模式如何解决“多维度的类爆炸”问题?

桥接模式通过分离抽象和实现,将多个变化维度拆分成独立的层次,每个层次可以独立扩展。这样,在增加新的形状或颜色时,只需在相应的层次添加新的类,不会导致类的数量呈指数级增长,从而避免了“类爆炸”问题,提高了代码的可维护性和可扩展性。

2025-03-24 15:30:42 383

原创 桥接模式面试题

通过这些问题,你可以深入理解桥接模式的设计哲学、适用场景和实际应用技巧,同时避免常见的设计误区。

2025-03-24 15:29:32 399

原创 桥接模式 UML 类图

【代码】桥接模式 UML 类图。

2025-03-24 15:24:23 205

原创 装饰者模式的 UML 类图

【代码】装饰者模式的 UML 类图。

2025-03-24 15:16:38 298

原创 装饰者模式(Decorator Pattern)

装饰者模式(Decorator Pattern)是一种结构型设计模式,它允许向一个现有的对象添加新的功能,同时又不改变其结构。这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。

2025-03-24 15:13:29 393

原创 桥接模式详细

虽然桥接模式中的组合关系与单纯的组合模式有相似之处,但桥接模式更侧重于解决两个独立变化维度之间的解耦问题,通过将抽象和实现分离,并使用组合关系来连接它们,使得系统能够更灵活地应对变化。而组合模式主要用于将对象组合成树形结构以表示部分 - 整体的层次关系,更关注对象的组织和管理。桥接模式中确实运用到了组合关系,这是它实现灵活性和可扩展性的关键之一。

2025-03-24 14:58:29 372

原创 桥接模式(Bridge Pattern)

桥接模式(Bridge Pattern)是一种结构型设计模式,它主要用于将抽象部分与实现部分分离,使它们可以独立地变化。下面将从多个方面为你详细介绍桥接模式。

2025-03-24 14:46:36 300

原创 适配器vsUML类图,你们知道吗

下面为你分别展示类适配器、对象适配器和接口适配器的 UML 类图,采用文本和符号的形式呈现。

2025-03-24 12:55:11 380

原创 适配器模式的三种类型

适配器模式的三种类型(类适配器、对象适配器、接口适配器)的名字主要来源于它们的和。

2025-03-24 12:38:05 278

原创 适配器模式

类适配器模式通过继承来实现适配功能。适配器类继承被适配者类,并实现目标接口,从而将被适配者的接口转换为目标接口。对象适配器模式通过组合来实现适配功能。适配器类持有被适配者类的实例,并实现目标接口,在目标接口的方法中调用被适配者的方法。当目标接口中有多个方法,但客户端只需要使用其中一部分时,可使用接口适配器模式。创建一个抽象类实现目标接口,并为接口中的每个方法提供默认实现,客户端可以继承该抽象类,只重写需要的方法。

2025-03-24 12:31:26 391

原创 类适配器模式 UML 类图

以下是适配器模式常见的两种实现方式(类适配器和对象适配器)对应的文字和符号版 UML 类图。

2025-03-24 12:20:34 144

原创 适配器模式简介

适配器模式和变压器在概念上确实有相似之处,但它们分别应用于不同的领域(软件设计 vs. 物理设备)。如果你在代码中需要让两个不兼容的类协同工作,适配器模式就是你的“软件变压器”!在软件设计中,适配器模式(Adapter Pattern)的目的是。(如220V转110V),使得不同电压标准的设备可以共用电源。类似于变压器直接嵌入到设备中。类似于外接的转换插头,更灵活。在物理世界中,变压器的目的是。

2025-03-24 12:16:56 882

原创 生成器模式(Builder Pattern)的适用场景

通过解耦构造逻辑与最终表示,提升代码的灵活性和可维护性。在需要支持多种对象配置、避免参数爆炸或隐藏构造细节时,它是理想选择。但在简单场景中,需警惕过度设计。

2025-03-24 11:32:44 550

原创 生成器模式(Builder Pattern)

【代码】生成器模式(Builder Pattern)

2025-03-24 11:29:14 1152

原创 建造者模式简介

对象时,可能有CPU、内存、硬盘等必选参数,以及显卡、声卡等可选参数。当对象构造函数需要大量参数(尤其是可选参数)时,使用传统构造函数或。:生成一份包含标题、正文、页脚的文档,需要确保标题在正文之前生成。当对象的构造需要多个步骤,且步骤顺序可能影响最终结果时。:用相同数据生成HTML或Markdown格式的报告。建造者模式(Builder Pattern)是一种。解耦,使得同样的构造过程可以创建不同的对象表示。,它通过分步骤构造复杂对象的方式,将对象的。需要基于相同构造过程生成不同形式的产品。

2025-03-23 14:07:57 317

原创 克隆原型 + 按需修改

(如涉及 I/O 操作、复杂计算或资源加载),但后续又需要。时,通过克隆原型 + 按需修改的方式,可以。,同时保持代码灵活性。

2025-03-23 13:39:34 878

原创 原型模式使用详情

完全取决于具体场景需求。原型模式本身并不强制要求克隆后的对象必须保持原封不动,而是提供了一种。原型模式的核心是通过。

2025-03-23 13:38:51 431

原创 原型模式是对“对象创建过程”的一种优化,其优化原理以及适用场景两方面

原型模式是对“对象创建过程”的一种优化,下面将从其优化原理以及适用场景两方面进行详细分析。

2025-03-23 13:20:54 273

原创 原型模式的核心思想是什么?它如何通过“复制”而不是“实例化”来创建对象?

而不是通过传统的构造函数实例化。,并让具体原型对象实现这一接口。原型模式(Prototype Pattern)是一种。

2025-03-23 13:17:21 831

原创 原型模式面试题

这些问题可以引导对原型模式的深入探讨,从理论到实践、从优点到局限性,覆盖其在不同场景下的适用性和实现挑战。

2025-03-23 13:15:25 344

原创 工厂模式的使用可能会带来额外的性能开销

综上所述,工厂模式的使用可能会带来额外的性能开销,但具体的影响程度取决于业务场景、使用频率和工厂类的复杂度等因素。通过合理的设计和优化,可以降低这些性能开销,使工厂模式在保证代码可维护性和可扩展性的同时,不会对系统性能产生太大影响。

2025-03-23 13:13:46 885

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除