# designpattern-demo **Repository Path**: xiongxq/designpattern-demo ## Basic Information - **Project Name**: designpattern-demo - **Description**: 设计模式学习 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2021-09-26 - **Last Updated**: 2023-02-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: 设计模式 ## README # Design Pattern Demo #### 介绍 设计模式学习 #### 学习笔记与对应的代码 - Iterator Pattern - 封装你的集合迭代逻辑 - 笔记:https://www.yuque.com/docs/share/60a4276e-9254-4e6c-90df-f775c49da40b?# 《迭代器模式》 - 代码:https://gitee.com/xiongxq/designpattern-demo/tree/master/src/main/java/com/example/designpattern/iterator - Adapter Pattern - 适配老版本接口和第三方接口 - 笔记:https://www.yuque.com/docs/share/0b4a679e-c07c-4ff3-a03c-9043cf46dda0?# 《适配器模式》 - 代码:https://gitee.com/xiongxq/designpattern-demo/tree/master/src/main/java/com/example/designpattern/adapter - Template Method Pattern - 抽取通用代码逻辑到父类 - 笔记:https://www.yuque.com/docs/share/a9d7cf9c-2ac0-4fa8-9926-623cf5805af8?# 《模板方法模式》 - 代码:https://gitee.com/xiongxq/designpattern-demo/tree/master/src/main/java/com/example/designpattern/template - Simple Factory Pattern - 是个人都会的模式 - 笔记:https://www.yuque.com/docs/share/2b8fff1b-790c-400f-8d63-3f078de665e3?# 《简单工厂模式》 - 代码:https://gitee.com/xiongxq/designpattern-demo/tree/master/src/main/java/com/example/designpattern/factory - Factory Method Pattern - 稍微复杂一点的工厂模式 - 笔记:https://www.yuque.com/docs/share/e6d4958c-2b9c-4590-b4aa-60ed96ca559a?# 《稍微复杂点的工厂模式》 - 代码:https://gitee.com/xiongxq/designpattern-demo/tree/master/src/main/java/com/example/designpattern/factory - Abstract Factory Pattern - 最复杂的工厂模式变种 - 笔记:https://www.yuque.com/docs/share/a611bb7e-ad37-477b-9aa1-4fb80f2099f0?# 《抽象工厂模式》 - 代码:https://gitee.com/xiongxq/designpattern-demo/tree/master/src/main/java/com/example/designpattern/factory - Singleton Pattern - 一个类就只有一个实例 - 笔记:https://www.yuque.com/docs/share/90667f63-b691-44b3-a6e9-f1fc3da58f8a?# 《单例模式》 - 代码:https://gitee.com/xiongxq/designpattern-demo/tree/master/src/main/java/com/example/designpattern/singleton - Facade Pattern - 将多个内部模块调用封装在一个类中 - 笔记:https://www.yuque.com/docs/share/234e2b7a-93d5-49a1-acdd-3ea2eebac485?# 《外观模式》 - 代码:https://gitee.com/xiongxq/designpattern-demo/tree/master/src/main/java/com/example/designpattern/facade - Builder Pattern - 封装复杂对象的构造逻辑 - 笔记:https://www.yuque.com/docs/share/8728f77b-06fb-4a19-b705-35be5a1803a0?# 《构造器模式》 - 代码:https://gitee.com/xiongxq/designpattern-demo/tree/master/src/main/java/com/example/designpattern/builder - Prototype Pattern - 自己实现自己的对象拷贝逻辑 - 笔记:https://www.yuque.com/docs/share/6e0d83f4-869f-4ad3-bd4f-20be5968e509?# 《原型模式》 - 代码:https://gitee.com/xiongxq/designpattern-demo/tree/master/src/main/java/com/example/designpattern/prototype - Mediator Pattern - 让相互调用的模块之间解耦合 - 笔记:https://www.yuque.com/docs/share/55ce64a8-8821-4c6f-a0a1-edc8af00e48b?# 《中介者模式》 - 代码:https://gitee.com/xiongxq/designpattern-demo/tree/master/src/main/java/com/example/designpattern/mediator - Proxy Pattern - 本地接口代理远程接口的调用 - 笔记:https://www.yuque.com/docs/share/91997afe-12f9-48a1-a60a-0f04a388a72c?# 《代理模式》 - 代码:https://gitee.com/xiongxq/designpattern-demo/tree/master/src/main/java/com/example/designpattern/proxy - Observer Pattern - 监听目标对象的状态改变 - 笔记:https://www.yuque.com/docs/share/dd423c2f-e2d9-4266-a5ac-947a6ba37477?# 《观察者模式》 - 代码:https://gitee.com/xiongxq/designpattern-demo/tree/master/src/main/java/com/example/designpattern/observer - Command Pattern - 给其他模块下达命令 - 笔记:https://www.yuque.com/docs/share/cb89aad1-b37a-4df7-98ef-f27b1d35e580?# 《命令模式》 - 代码:https://gitee.com/xiongxq/designpattern-demo/tree/master/src/main/java/com/example/designpattern/command - Composite Pattern - 对层级数据递归调用执行操作 - 笔记:https://www.yuque.com/docs/share/a6af082d-9fe8-47a9-9cf0-b71f6de9f0fd?# 《组合模式》 - 代码:https://gitee.com/xiongxq/designpattern-demo/tree/master/src/main/java/com/example/designpattern/composite - Strategy Pattern - 替换掉屎一样的 if else 语句 - 笔记:https://www.yuque.com/docs/share/080bdef0-ab8b-4e58-b0ca-de0f5a9fb6e3?# 《策略模式》 - 代码:https://gitee.com/xiongxq/designpattern-demo/tree/master/src/main/java/com/example/designpattern/strategy - State Pattern - 封装数据的状态流转逻辑 - 笔记:https://www.yuque.com/docs/share/114e6569-bef4-49ce-ab74-17dcd4f23fa1?# 《状态模式》 - 代码:https://gitee.com/xiongxq/designpattern-demo/tree/master/src/main/java/com/example/designpattern/state - Memento Pattern - 将中间数据暂存之后再恢复 - 笔记:https://www.yuque.com/docs/share/75c929c7-1cab-435a-b069-7b3f2098f078?# 《备忘录模式》 - 代码:https://gitee.com/xiongxq/designpattern-demo/tree/master/src/main/java/com/example/designpattern/memento - Flyweight Pattern - 简单的 jvm 内存对象池缓存 - 笔记:https://www.yuque.com/docs/share/bf551b3a-189e-49ba-a922-c801cde7e801?# 《享元模式》 - 代码:https://gitee.com/xiongxq/designpattern-demo/tree/master/src/main/java/com/example/designpattern/flyweight - Decorator Pattern - 对目标类的功能进行增强 - 笔记:https://www.yuque.com/docs/share/92960a0f-166e-40b8-b575-cffaa58c92ea?# 《装饰器模式》 - 代码:https://gitee.com/xiongxq/designpattern-demo/tree/master/src/main/java/com/example/designpattern/decorator - Chain Pattern - 动态组装不同的复杂业务流程 - 笔记:https://www.yuque.com/docs/share/86819398-d475-40e8-a2ac-f87f9a5ad224?# 《责任链模式》 - 代码:https://gitee.com/xiongxq/designpattern-demo/tree/master/src/main/java/com/example/designpattern/chain - Bridge Pattern - 两个代码组件之间面向借口桥接调用 - 笔记:https://www.yuque.com/docs/share/61cf1b09-6e1d-41cd-bea9-edcad32aba17?# 《桥接模式》 - 代码:https://gitee.com/xiongxq/designpattern-demo/tree/master/src/main/java/com/example/designpattern/bridge - Visitor Pattern - 动态的给目标对象增加新功能 - 笔记:https://www.yuque.com/docs/share/f985a0a4-e08f-4db0-861e-1b7b08c214da?# 《访问者模式》 - 代码:https://gitee.com/xiongxq/designpattern-demo/tree/master/src/main/java/com/example/designpattern/visitor