- 博客(14)
- 资源 (1)
- 收藏
- 关注
原创 设计模式-桥接
摘要: 桥接模式是一种结构型设计模式,通过将抽象与实现分离,使二者能独立变化。典型应用场景包括日志系统、消息系统和JDBC驱动等。该模式包含抽象化、修正抽象化、实现化和具体实现化四个角色,通过组合替代继承,有效避免类爆炸问题,符合开闭原则和合成复用原则。其优点是可扩展性强,但设计难度较高,需准确识别变化维度。以画图为例,通过颜色(实现)与形状(抽象)的桥接,实现不同颜色图形的灵活组合。核心在于解耦多维度变化,与适配器、策略模式结构相似但意图不同。
2025-10-03 19:40:45
319
原创 设计模式-代理
代理模式是一种结构型设计模式,通过引入代理类间接访问原始对象,在不修改原始类的情况下实现访问控制、延迟初始化等功能。其核心结构包括抽象主题接口、真实主题类和代理类。优点包括职责清晰、高扩展性和智能化,但可能增加系统复杂度和性能开销。代理模式常用于访问控制、远程调用、日志记录等场景,与装饰器模式不同,它更侧重于控制访问而非功能增强。实现时需定义共同接口,代理类持有真实对象引用并添加额外逻辑。
2025-09-21 20:34:56
712
原创 设计模式-享元
享元模式是一种结构型设计模式,通过共享相同内在状态的对象来减少内存使用。它将对象状态分为内在(共享)和外在(独享)两部分,适用于存在大量相似对象的场景。该模式包含享元接口、具体享元实现、享元工厂和客户端四个角色,优点是减少内存占用,但会增加系统复杂性并可能影响性能。典型应用包括对象池、字符串常量池等。与原型模式不同,享元模式侧重对象共享而非创建效率。
2025-09-20 20:15:27
744
原创 设计模式-适配器
摘要: 适配器模式是一种结构型设计模式,用于解决接口不兼容问题,使不兼容的类能协同工作。适用于系统集成、第三方库适配、遗留代码复用等场景。核心结构包括目标接口(Target)、适配者(Adaptee)和适配器(Adapter),支持类继承或对象组合实现(推荐组合)。优点包括解耦、复用性和灵活性,缺点可能增加系统复杂性。典型案例如将TF卡适配为SD卡接口,通过适配器转换调用逻辑。在Java中如Arrays.asList(),Spring中如HandlerAdapter均应用此模式,体现"开闭原则&q
2025-09-16 21:37:39
822
原创 设计模式-装饰器
装饰器模式是一种结构性设计模式,允许动态地为对象添加功能而不改变其原有结构。该模式通过将对象封装在包含额外行为的装饰器对象中,实现功能的灵活扩展。其核心结构包括抽象组件、具体组件、抽象装饰器和具体装饰器四个角色。装饰器模式的优点在于比继承更灵活、避免类爆炸、符合开闭原则,但缺点是会增加程序复杂性。典型案例包括Java I/O流和Spring框架中的包装类。实现时,通过继承抽象装饰器并持有组件引用的方式,可以动态叠加功能,如手机配件案例所示,能够灵活组合不同装饰器来扩展对象功能。
2025-09-15 22:12:57
868
原创 设计模式-组合
组合模式是一种结构型设计模式,用于处理树形结构的对象集合。它允许客户端以统一方式处理单个对象和对象组合,适用于文件系统、GUI组件、组织架构等场景。模式包含组件(Component)、叶子(Leaf)和容器(Composite)三个角色,通过递归调用实现整体操作。优点是简化客户端代码、支持开闭原则,但存在透明性与安全性的权衡问题。实现案例展示了餐厅菜单系统的应用,其中菜单项(Leaf)和子菜单(Composite)继承自统一抽象类,通过递归计算总价格和打印菜单结构。
2025-09-14 21:30:33
845
原创 设计模式-门面
门面模式摘要 门面模式是一种结构型设计模式,通过为复杂子系统提供统一的高层接口来简化调用,隐藏内部复杂性。它将多个子系统接口封装起来,使客户端只需与门面交互,而无需了解子系统细节。门面模式适用于需要简化复杂系统接口、构建分层结构或处理多个相互依赖子系统的场景。其优点包括简化使用、解耦客户端与子系统、提高可维护性和建立清晰层次结构;缺点则可能违反开闭原则和存在过度设计风险。门面模式与中介者模式的区别在于前者侧重简化对外接口,后者侧重协调内部对象交互。实现时通常将门面设计为单例,并可与抽象工厂模式结合使用。
2025-09-13 22:23:08
648
原创 设计模式-建造者
建造者模式是一种创建型设计模式,用于将复杂对象的构建过程抽离封装。它通过抽象建造者定义产品标准、指挥者控制构建流程、具体建造者实现细节的方式,实现构建与表示的分离。该模式适用于产品结构复杂、属性相互依赖的场景,如Java中的StringBuilder。主要优点包括封装性好、构建过程易扩展、避免重叠构造器,但会增加系统复杂性。实现案例展示了雨伞生产的构建过程,其中指挥者按标准流程调用建造者方法完成产品组装。建造者模式使客户端无需关心具体创建细节,只需指定建造者类型即可获得完整产品。
2025-09-13 13:55:19
850
原创 设计模式-抽象工厂
本文介绍了抽象工厂模式及其与工厂方法模式的对比。抽象工厂模式是一种创建型设计模式,用于创建相关产品族,而不需指定具体类。相比工厂方法模式(关注单一产品创建),抽象工厂模式关注产品族创建,确保产品兼容性。文章分析了两种模式的适用场景、结构、优缺点,并通过雨伞生产案例展示具体实现。关键区别在于:工厂方法模式纵向扩展新产品,而抽象工厂模式横向扩展产品族。选择时需考虑产品单一性还是系列性。
2025-09-11 23:43:47
772
原创 设计模式-工厂方法
工厂方法模式是一种创建型设计模式,它将对象创建延迟到子类中,通过定义抽象工厂接口让子类决定实例化哪个类。该模式具有良好的封装性和扩展性,符合开闭原则,但会增加系统复杂性。文章通过雨伞生产案例展示了模式实现方式,包括抽象产品定义、具体产品实现和工厂类结构,并对比了简单工厂模式的区别。工厂方法模式特别适用于需要频繁扩展的系统中,体现了"依赖抽象而非实现"的设计原则。
2025-09-09 21:31:41
601
原创 设计模式-原型
原型模式是一种通过复制现有对象来创建新对象的设计模式,属于创建型模式。其核心思想是提供一个原型对象作为蓝图,通过克隆而非new实例化来创建对象。适用场景包括:避免重复初始化开销、简化构造过程、隔离对象创建细节以及实现对象状态快照。 模式结构包含原型接口和具体实现类。关键实现需区分浅拷贝(仅复制基本类型和引用)与深拷贝(递归复制引用对象)。优点是性能高、创建简单,缺点是克隆方法实现复杂,特别是处理循环引用时。
2025-09-08 21:26:24
928
原创 设计模式-单例
单例模式是确保类仅有一个实例并提供全局访问的设计模式。适用场景包括资源共享(如配置管理器、日志记录器)和资源控制(如任务管理器)。其优点包括保证唯一性、全局访问和延迟初始化,但存在违反单一职责、难以测试等缺点。主要实现方式有:饿汉模式(线程安全但非延迟加载)、懒汉模式(延迟加载但需处理线程安全)。懒汉模式通过双重检查锁、静态内部类或枚举实现,其中枚举方式线程安全且防止反射攻击。根据需求选择实现方式:静态内部类适合简洁延迟加载,枚举适合绝对安全场景,而饿汉模式适合简单需求。
2025-09-07 19:41:11
531
原创 设计模式-面向对象
面向对象编程(OOP)的核心思想是将现实世界抽象为对象,通过封装、继承和多态三大特性构建程序。封装通过访问修饰符隐藏实现细节,确保数据安全;继承使用extends实现代码复用和层次关系;多态则通过方法重写实现"一个接口,多种实现"。这三大特性相互依存:封装是基础,继承建立层次,多态提供灵活性,共同构建出可维护、可扩展的代码结构。
2025-09-07 03:27:28
342
原创 DevOps-1Panel安装部署
1Panel是一个现代化开源的Linux服务器运维管理面板,提供Web图形界面管理主机、容器、数据库等功能。本文详细介绍了在Ubuntu 24.04 LTS上安装1Panel的步骤:更新系统、安装依赖、创建目录、执行安装脚本并配置端口和访问凭证。安装完成后可通过浏览器访问管理界面,支持应用商店、安全防护和备份恢复等功能。文章还提供了1Panel服务状态检查、重启和完全卸载的操作指南。该面板适合个人开发者和小型企业使用,简化Linux服务器的运维管理工作。
2025-09-06 08:54:07
1356
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅