# design_mode_study_note **Repository Path**: del-space/design_mode_study_note ## Basic Information - **Project Name**: design_mode_study_note - **Description**: 设计模式学习笔记及代码案例 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-06-30 - **Last Updated**: 2025-06-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 设计模式学习示例代码 这是一个包含多种常见设计模式实现的Java项目,主要用于学习和理解设计模式的应用场景及实现方式。 ## 项目结构 项目按照设计模式的分类组织代码,包含以下主要模块: - **设计原则(principle)**:展示了面向对象设计中的六大原则,如依赖倒转原则、里氏替换原则等。 - **创建型模式(creational)**:包括工厂模式、抽象工厂模式、建造者模式、原型模式、单例模式等。 - **结构型模式(structural)**:包括适配器模式、桥接模式、组合模式、装饰器模式、外观模式等。 - **行为型模式(behavioral)**:包括命令模式、解释器模式、迭代器模式、观察者模式、责任链模式等。 ## 使用说明 ### 运行示例 每个设计模式都有对应的`main`方法可以直接运行,例如: - `com.atde._03_creational_design_patterns.builder.Client`:运行建造者模式示例。 - `com.atde._05_behavioral_design_patterns.command.remotecontrol.Client`:运行命令模式示例。 ### 示例代码说明 #### 工厂模式 工厂模式用于解耦对象的创建和使用。例如: ```java SimpleFactory factory = new SimpleFactory(); Pizza pizza = factory.createPizza("cheese"); pizza.prepare(); ``` #### 单例模式 单例模式确保一个类只有一个实例,例如: ```java Singleton instance = Singleton.getInstance(); ``` #### 观察者模式 观察者模式用于一对多的依赖通知机制,例如: ```java WeatherData weatherData = new WeatherData(); CurrentConditions observer = new CurrentConditions(); weatherData.registerObserver(observer); weatherData.setData(30, 100, 50); // 触发通知 ``` ## 设计模式分类 ### 创建型模式 | 模式 | 说明 | |------|------| | 工厂模式 | 定义一个用于创建对象的接口,让子类决定实例化哪一个类 | | 抽象工厂 | 提供一个创建一系列相关或相互依赖对象的家族接口 | | 建造者 | 将一个复杂对象的构建与它的表示分离 | | 原型模式 | 使用原型实例指定创建对象的种类,并通过拷贝这个原型来创建新对象 | | 单例模式 | 确保一个类只有一个实例,并提供一个全局访问点 | ### 结构型模式 | 模式 | 说明 | |------|------| | 适配器 | 将一个类的接口转换成客户希望的另一个接口 | | 桥接 | 将抽象部分与其实现部分分离,使它们可以独立变化 | | 组合 | 将对象组合成树形结构以表示“部分-整体”的层次结构 | | 装饰器 | 动态地给一个对象添加一些额外的职责 | | 外观 | 为子系统中的一组接口提供一个一致的界面 | ### 行为型模式 | 模式 | 说明 | |------|------| | 命令 | 将请求封装为对象,从而使你可用不同的请求对客户进行参数化 | | 解释器 | 给定一个语言,定义它的文法的一种表示,并定义一个解释器 | | 迭代器 | 提供一种方法顺序访问一个聚合对象中的各个元素 | | 观察者 | 定义对象间的一种一对多依赖关系,当一个对象的状态发生改变时,所有依赖者都会收到通知并自动更新 | | 责任链 | 使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合 | ## 学习建议 - **逐个模式学习**:建议从最常用的设计模式开始,如工厂模式、单例模式、观察者模式等。 - **结合实际项目**:尝试将设计模式应用到实际开发中,理解其适用场景和优势。 - **阅读源码**:深入阅读Spring、Hibernate等框架的源码,理解设计模式在实际项目中的应用。 ## 贡献指南 欢迎提交Pull Request来改进本项目,包括但不限于: - 添加新的设计模式实现 - 改进现有代码的可读性和性能 - 补充文档和注释 ## 许可证 本项目采用 MIT 许可证。详情请参阅 [LICENSE](LICENSE) 文件。