- 博客(61)
- 收藏
- 关注
原创 Chapter14—中介者模式
摘要:中介者模式是一种行为型设计模式,通过引入中介对象封装多个对象间的交互,降低对象间的耦合度。该模式包含抽象中介者、具体中介者、抽象同事类和具体同事类四个角色。中介者协调各同事类的通信,避免直接相互引用。文中通过示例代码展示了中介者模式的基本实现,包括中介者与同事类的交互方式,并提供了一个虚拟聊天室的扩展示例说明实际应用场景。该模式适用于对象间交互复杂、关系变化频繁的系统,能有效提高系统的灵活性和可维护性。
2025-10-30 11:29:37
845
原创 Chapter13—代理模式
代理模式摘要 代理模式通过引入中介代理对象来控制对目标对象的访问。它适用于需要控制或限制对某些对象的访问,或需要添加额外操作而不改变原有对象结构的场景。该模式包含三个关键角色:抽象主题(定义共同接口)、真实主题(实际业务对象)和代理(控制访问并可能添加额外操作)。文中提供了两个示例:权限代理控制用户操作权限,租房中介代理在租房前后添加中介服务。代理模式增强了系统的灵活性和安全性,是软件开发中常用的间接访问解决方案。
2025-10-30 11:26:42
932
原创 Chapter12—桥接模式
桥接模式是一种结构型设计模式,将抽象部分与实现部分分离,使它们可以独立变化。该模式通过用聚合关系代替继承关系,解决多维度变化的复杂性。在桥接模式中,抽象类(Abstraction)包含一个实现类接口(Implementor)的引用,使两者松耦合。典型应用如不同颜色和尺寸的画笔系统,其中颜色作为实现部分,笔作为抽象部分,两者可独立扩展而互不影响。该模式提高了系统灵活性,降低了维护成本,适用于需要处理多维度变化的场景。
2025-10-16 13:42:26
957
原创 Chapter11—适配器模式
适配器模式是一种结构型设计模式,用于将不兼容的接口转换为客户端期望的接口。它包含三个主要角色:Target(目标抽象类)、Adapter(适配器类)和Adaptee(适配者类)。适配器模式通过封装现有接口,使其能与新系统协同工作,同时遵循开闭原则。文中提供了机器人模仿动物行为和三相插座适配两个示例,展示了如何通过适配器解决接口不匹配问题。该模式的优点包括解耦目标类和适配者类、提高代码复用性以及增强系统的灵活性,适用于需要重用现有类但接口不兼容的场景。
2025-10-16 13:38:15
656
原创 Chapter10—外观模式
外观模式是一种结构型设计模式,它为复杂子系统提供统一的简化接口。该模式通过定义一个高层接口(Facade),将多个子系统的功能整合在一起,使客户端只需与门面对象交互,无需直接调用复杂的子系统。文中通过家用电器开关控制和餐厅就餐系统两个示例,展示了外观模式的实际应用:开关控制示例中,总开关类封装了电灯、风扇等设备的操作;餐厅示例中,门面类整合了蔬菜供应、烹饪、服务等流程。这种模式降低了系统的耦合度,提高了易用性,是简化复杂系统交互的有效方式。
2025-09-29 09:42:28
961
原创 Chapter9—享元模式
享元模式是一种结构型设计模式,通过对象共享来减少内存使用和提高性能。其核心思想是将对象分为可共享的内部状态(内蕴状态)和不可共享的外部状态(外蕴状态)。模式包含享元接口、具体享元实现和享元工厂三个主要角色,工厂负责创建和管理享元对象。文中通过共享网络设备和游戏背景图元两个示例,展示了如何实现对象池来复用对象。该模式适用于存在大量相似对象的场景,能有效降低系统资源消耗,但会增加系统复杂度。
2025-09-29 09:39:20
987
原创 Chapter8—组合模式
组合模式摘要 组合模式是一种结构型设计模式,用于将对象组织成树形结构以表示"部分-整体"的层次关系。该模式通过统一对待单个对象和组合对象,使客户端代码可以一致地处理简单和复杂元素。 核心组件包括: 组件接口(Component) - 定义所有节点的通用操作 复合组件(Composite) - 包含子组件的容器节点 叶端组件(Leaf) - 不含子节点的终端元素 典型应用场景包括文件系统、UI组件等树形结构。模式优势在于简化客户端代码、支持递归组合和灵活添加新组件类型。示例展示了文件夹/文
2025-09-16 15:01:53
741
原创 Chapter7—建造者模式
Builder(建造者):为创建一个Product对象的各个部件指定抽象接口,定义了构成产品的各个组件的构建标准,通常有多个步骤。ConcreteBuilder(建造者实现):具体建造者,可以有多种实现,负责产品的组装但不包含整体建造逻辑。Product(产品):复杂的产品类,构建过程相对复杂,需要其他组件组装而成。Director(指导者):持有建造者接口引用的指导者类,指导建造者按一定的逻辑进行建造。
2025-09-16 14:01:53
540
原创 Chapter6—原型模式
文章摘要 原型模式是一种通过复制现有对象(原型)来创建新对象的设计模式,避免了重复初始化带来的性能损耗。其核心思想是利用拷贝(深/浅拷贝)替代传统的对象创建过程。该模式包含原型接口、具体原型实现和客户端三个角色,适用于创建复杂对象的场景。文中以汽车制造为例,对比了传统创建方式与原型克隆的效率差异,并指出在C++中可通过拷贝构造函数实现类似功能,而在Java/C#等语言中原型模式能更高效地操作内存。
2025-09-15 08:54:46
322
原创 Chapter5—抽象工厂模式
摘要:抽象工厂模式是一种创建型设计模式,用于生产一系列相关或依赖的产品对象。它通过抽象工厂接口定义产品族创建方法,由具体工厂实现特定产品族的创建。该模式包含抽象产品、具体产品、抽象工厂和具体工厂四种角色,能够有效解耦客户端与具体产品类的依赖关系。示例展示了汽车生产场景中,不同品牌工厂生产对应品牌SUV和轿车产品的实现方式。
2025-09-12 10:53:59
729
原创 Chapter4—工厂方法模式
摘要: 工厂方法模式通过定义创建产品的抽象接口,将具体产品的实例化延迟到子类工厂实现。该模式包含四个核心角色:产品基类、具体产品类、工厂接口和具体工厂类。示例展示了电子产品工厂生产手机和平板的过程,体现了松耦合、便于扩展的优点,但也存在每新增产品需配套新增工厂的缺点。该模式强调高层模块依赖高层抽象,低层模块实现具体细节,符合开闭原则,适用于产品类型明确但可能扩展的场景。
2025-09-10 08:55:36
474
原创 Chapter3—单例模式
单例模式摘要 单例模式确保一个类仅有一个实例,并提供全局访问点。适用于需要全局唯一对象的场景,如配置管理、线程池等。 主要实现方式: 饿汉式:类加载时即创建实例,线程安全但可能浪费资源 懒汉式:首次调用时创建实例,需考虑线程安全 静态局部变量:简洁高效,自动管理内存 线程安全懒汉式:使用双重检查锁定优化性能 关键特点: 私有构造函数防止外部实例化 删除拷贝和移动操作 提供静态获取实例方法 可能需要手动释放资源 模板类实现可复用单例逻辑,简化具体单例类的编写。
2025-09-08 08:39:16
522
原创 Chapter2—设计原则
本文介绍了四个重要的面向对象设计原则:1)单一职责原则(SRP),强调一个类只负责一项职责;2)开闭原则(OCP),提倡通过扩展而非修改来实现变化;3)里氏替换原则(LSP),要求子类能够替换父类而不影响功能;4)接口隔离原则(ISP),主张将臃肿接口拆分为多个专门接口。每个原则都通过代码示例进行了说明,展示了如何应用这些原则来创建更灵活、可维护的系统设计。这些原则共同构成了良好软件设计的基础,有助于提高代码的可读性、可扩展性和可维护性。
2025-09-04 16:11:54
867
原创 Chapter1—设计模式基础
本文介绍了面向对象编程的基本概念和设计模式中的关键要素。主要内容包括: 面向对象三大特性:封装(隐藏内部细节)、继承(代码重用)和多态(接口统一但行为不同) 多态的实现机制:通过虚函数、动态绑定和虚函数表实现运行时多态 UML类图中的六种基本关系:接口实现(虚线+空心箭头)、继承泛化(实线+实心箭头)、不可分离组合(实线+实心菱形)、可分离聚合(实线+空心菱形)、关联(实线)和依赖(虚线+箭头) 通过C++代码示例展示了多态的具体应用 这些概念是理解和应用设计模式的基础。
2025-09-03 17:31:41
1086
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
1