
设计模式
文章平均质量分 92
常见的设计模式
qqxhb
共享、学习
展开
-
零基础设计模式——结构型模式 - 代理模式
代理模式摘要 代理模式是一种结构型设计模式,通过引入代理对象来控制对其他对象的访问。代理充当真实对象的替身,在客户端和真实对象之间提供间接层,用于实现访问控制、延迟加载、远程访问等功能。 核心优点: 控制对象访问权限 支持延迟加载大对象 简化远程对象访问 可添加额外功能(如缓存、日志) 常见代理类型包括虚拟代理(延迟加载)、远程代理(网络通信)、保护代理(权限控制)等。实现时需定义统一接口,代理类持有真实对象引用并控制访问。 典型应用场景包括图片延迟加载、RPC调用、权限管理系统等。该模式提高了系统的安全性原创 2025-05-29 08:20:38 · 1363 阅读 · 0 评论 -
零基础设计模式——结构型模式 - 享元模式
享元模式是一种结构型设计模式,旨在通过共享对象减少内存使用和提高性能。该模式将对象状态分为内部状态(可共享)和外部状态(随上下文变化),通过享元工厂管理共享对象。典型的应用场景包括文本编辑器字符、游戏元素和图形系统对象。实现示例展示了如何通过共享不同颜色的圆形对象来优化资源。享元模式的优点是显著减少对象数量和内存占用,但会增加系统复杂度并要求客户端管理外部状态。原创 2025-05-28 08:46:41 · 1194 阅读 · 0 评论 -
零基础设计模式——结构型模式 - 外观模式
外观模式通过提供一个统一的接口来封装子系统中一组复杂的接口,从而简化了客户端与子系统的交互。它有效地降低了耦合,提高了系统的可维护性和易用性。当你面对一个复杂的系统,并希望为客户端提供一个更简单、更直接的访问方式时,外观模式是一个非常好的选择。记住它的核心:**提供高层统一接口,简化子系统访问**。原创 2025-05-28 08:39:21 · 1701 阅读 · 0 评论 -
零基础设计模式——结构型模式 - 装饰器模式
装饰器模式是一种灵活扩展对象功能的结构型设计模式,它通过动态包装对象来添加新职责,而无需修改原有代码。该模式包含四个核心角色:Component(组件接口)、ConcreteComponent(具体组件)、Decorator(装饰器抽象类)和ConcreteDecorator(具体装饰器)。主要优点包括比继承更灵活的扩展性、避免子类爆炸、符合开闭原则;缺点是可能产生过多小对象且调试较复杂。典型应用场景如Java I/O流和UI组件功能扩展,通过保持接口一致性实现功能的动态叠加。原创 2025-05-27 08:35:08 · 1001 阅读 · 0 评论 -
零基础设计模式——结构型模式 - 组合模式
组合模式是一种结构型设计模式,用于将对象组合成树形结构以表示"部分-整体"的层次关系。该模式使得客户端可以统一处理单个对象和组合对象,无需区分叶子节点和容器节点。 主要特点: 通过Component接口统一操作单个对象和组合对象 支持递归组合结构,容器可以包含叶子或其他容器 适用于文件系统、GUI组件、组织架构等层次结构场景 优点: 简化客户端代码,统一处理方式 易于扩展新组件类型 清晰反映对象层次关系 缺点: 透明方式可能使叶子节点包含无用方法 难以限制组合中的组件类型 典型实现包含C原创 2025-05-27 08:27:19 · 1010 阅读 · 0 评论 -
零基础设计模式——结构型模式 - 桥接模式
桥接模式是一种结构型设计模式,用于将抽象部分与其实现部分分离,使它们可以独立变化。这种模式通过引入“桥梁”来连接抽象和实现,避免了因多维度变化导致的类爆炸问题。典型应用场景包括GUI跨平台开发、遥控器与电器控制等系统。桥接模式的主要优点在于提高系统扩展性、降低耦合度,但也增加了设计复杂度。实现时通常包含抽象类、扩充抽象类、实现类接口和具体实现类四个角色,通过委托机制实现抽象与实现的解耦。这种模式特别适用于存在多个独立变化维度的系统设计。原创 2025-05-26 08:43:43 · 1009 阅读 · 0 评论 -
零基础设计模式——结构型模式 - 适配器模式
适配器模式是一种结构型设计模式,用于解决接口不兼容问题。它通过将一个类的接口转换成客户期望的另一个接口,使原本不兼容的类能够协同工作。模式分为类适配器(通过继承实现)和对象适配器(通过组合实现)两种形式。典型应用场景包括系统集成、代码迁移等,优点在于提高代码复用性和灵活性,缺点是会增加系统复杂性。示例展示了如何使用适配器模式让媒体播放器支持多种音频格式。原创 2025-05-26 08:36:36 · 747 阅读 · 0 评论 -
零基础设计模式——第二部分:创建型模式 - 原型模式
原型模式是一种创建型设计模式,通过复制现有对象来创建新对象,而不是通过传统的构造函数实例化。其核心思想是通过克隆原型实例来生成新对象,适用于创建成本高或需要大量相似对象的场景。原型模式的主要优点包括性能提升、简化对象创建、灵活性和对客户端隐藏具体类型。然而,实现克隆方法可能繁琐,深拷贝实现复杂,且可能违反开闭原则。原型模式的结构包括抽象原型、具体原型和客户端,克隆过程涉及深拷贝和浅拷贝的选择。适用场景包括动态实例化类、避免创建工厂类层次、创建成本高的对象以及需要大量相似对象的情况。原创 2025-05-22 08:00:22 · 812 阅读 · 0 评论 -
零基础设计模式——创建型模式 - 生成器模式
生成器模式(Builder Pattern)是一种创建型设计模式,旨在将复杂对象的构建过程与其表示分离,使得同样的构建过程可以创建不同的对象表示。该模式的核心思想是通过分步构建对象,封装复杂的创建逻辑,从而允许灵活地生成多种不同的产品。生成器模式通常包含四个角色:产品(Product)、抽象建造者(Builder)、具体建造者(ConcreteBuilder)和指挥者(Director)。指挥者负责控制构建顺序,具体建造者实现每个步骤的构建逻辑,最终生成产品。生成器模式适用于构建过程复杂、包含多个可选步骤或原创 2025-05-21 09:06:50 · 1205 阅读 · 0 评论 -
零基础设计模式——创建型模式 - 工厂方法模式
工厂方法模式是一种创建型设计模式,核心思想是将对象的创建过程封装在子类中,使得父类只需定义创建对象的接口,而具体的实现由子类决定。这种模式的主要目的是解耦对象的创建和使用,使得系统更加灵活和易于扩展。通过定义抽象工厂和抽象产品,工厂方法模式允许客户端代码依赖于抽象接口,而不需要知道具体的产品类名。适用场景包括需要解耦框架和具体实现、日志记录器、数据库访问等。优点是具有良好的封装性和扩展性,缺点是可能增加系统的复杂度和理解难度。实现上,工厂方法模式通过抽象产品和具体产品的分离,以及抽象工厂和具体工厂的分离,来原创 2025-05-20 09:00:43 · 1168 阅读 · 0 评论 -
零基础设计模式——创建型模式 - 单例模式
单例模式是一种创建型设计模式,旨在确保一个类仅有一个实例,并提供一个全局访问点。其核心思想在于将对象的创建与使用分离,降低系统耦合度。单例模式适用于需要全局唯一实例的场景,如数据库连接池、配置管理器、日志记录器等。实现方式主要分为“饿汉式”和“懒汉式”:饿汉式在类加载时即创建实例,线程安全;懒汉式则在首次请求时创建实例,需处理多线程安全问题。单例模式的优点包括保证实例唯一、全局访问和延迟实例化,但也存在违反单一职责原则、扩展困难、测试不友好等缺点。通过合理使用单例模式,可以有效管理全局资源和状态,但需避免滥原创 2025-05-20 08:52:45 · 1231 阅读 · 0 评论 -
零基础设计模式——设计模式入门
想象一下,你是个大厨,每天都要做很多菜。有些菜的制作流程是固定的,比如“炒”这个动作:热锅、倒油、放葱姜蒜爆香、放主料、翻炒、加调料、出锅。这个“炒”的流程,就是一种“模式”。设计模式 (Design Pattern)在软件开发中,就像是大厨做菜的“秘方”或“固定流程”。它是前辈们在解决各种软件设计问题时,总结出来的、可重复使用的、高效的解决方案。设计模式的定义与重要性定义:在特定情境下,针对特定问题的、经过验证的、优雅的解决方案。重要性经验的沉淀。原创 2025-05-19 10:11:48 · 1064 阅读 · 0 评论 -
零基础设计模式——大纲汇总
帮助零基础的同学快速入门设计模式,理解其核心思想和应用场景。我们将通过清晰的讲解和简单的示例,逐步引导你掌握常用的设计模式。原创 2025-05-19 10:02:55 · 741 阅读 · 0 评论 -
常见设计模式的原理、应用场景总结——结构型
结构型设计模式常见设计模式的原理、应用场景总结——创建型结构型模式主要总结了一些类或对象组合在一起的经典结构,这些经典的结构可以解决特定应用场景的问题。结构型模式包括:代理模式、桥接模式、装饰器模式、适配器模式、门面模式、组合模式、享元模式。1.代理模式代理模式在不改变原始类接口的条件下,为原始类定义一个代理类,主要目的是控制访问, 而非加强功能,这是它跟装饰器模式最大的不同。一般情况下,我们让代理类和原始类实现同样的接口。但是,如果原始类并没有定义接口,并且原始类代码并不是我们开发维护的。 在这原创 2021-10-19 09:12:00 · 883 阅读 · 0 评论 -
学习——模板方法模式(Template Method Pattern)
模板方法模式(Template Method Pattern)1. 模板方法模式的定义模板方法模式(Template Method Pattern)其定义如下:Define the skeleton of an algorithm in an operation,deferring some steps to subclasses.Template Method lets subclasse...原创 2019-03-17 17:48:06 · 213 阅读 · 0 评论 -
学习——抽象工厂模式(Abstract Factory Pattern)
抽象工厂模式(Abstract Factory Pattern)1. 抽象工厂模式的定义抽象工厂模式(Abstract Factory Pattern)是一种比较常用的模式,其定义如下:Provide an interface for creating families of related or dependent objects without specifying their concr...原创 2019-03-17 16:58:27 · 160 阅读 · 0 评论 -
学习——工厂方法模式(FACTORY METHOD)
工厂方法模式(FACTORY METHOD)1.工厂方法模式的定义工厂方法模式使用的频率非常高,在我们日常的开发中总能见到它的身影。其定义为:Define an interface for creating an object,but let subclasses decide which class to instantiate.Factory Method lets a class def...原创 2019-03-17 15:48:15 · 191 阅读 · 0 评论 -
学习——单例模式(Singleton Pattern)
单例模式是23个模式中比较简单的模式,应用也非常广泛,如在Spring中,每个Bean默认就是单例的,这样做的优点是Spring容器可以管理这些Bean的生命期,决定什么时候创建出来,什么时候销毁,销毁的时候要如何处理,等等。如果采用非单例模式(Prototype类型),则Bean初始化后的管理交由J2EE容器,Spring容器不再跟踪管理Bean的生命周期。原创 2019-03-17 12:50:33 · 165 阅读 · 0 评论 -
学习——6大设计原则
1.单一职责原则(Single Responsibility Principle)单一职责原则的英文名称是Single Responsibility Principle,简称是SRP。单一职责原则的定义是:应该有且仅有一个原因引起类的变更。单一职责原则好处如下:类的复杂性降低,实现什么职责都有清晰明确的定义;可读性提高,复杂性降低,那当然可读性提高了;可维护性提高,可读性提高,那当然更...原创 2019-03-17 11:19:43 · 152 阅读 · 0 评论 -
学习——建造者模式(Builder Pattern)
建造者模式(Builder Pattern)1. 建造者模式的定义建造者模式(Builder Pattern)也叫做生成器模式,其定义如下:Separate the construction of a complex object from its representation so that the same construction process can create differen...原创 2019-03-17 18:59:11 · 269 阅读 · 0 评论