<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[pointerz_zyz的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/pointerz_zyz</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; pointerz_zyz]]></copyright><item><title><![CDATA[26_解释器模式]]></title><link>https://blog.youkuaiyun.com/pointerz_zyz/article/details/160060116</link><guid>https://blog.youkuaiyun.com/pointerz_zyz/article/details/160060116</guid><author>pointerz_zyz</author><pubDate>Fri, 17 Apr 2026 09:00:00 +0800</pubDate><description><![CDATA[解释器模式是一种行为型设计模式，用于定义语言的文法并解释执行语句。它包含抽象表达式、终结符表达式、非终结符表达式和上下文等角色，通过构建语法树递归解释语言表达式。该模式适用于处理固定文法的简单语言，优点是灵活扩展语言处理能力且符合开闭原则，缺点是复杂文法可能导致系统性能和维护性问题。示例展示了通过上下文和表达式类实现简单解释器的过程。]]></description><category></category></item><item><title><![CDATA[25_中介者模式]]></title><link>https://blog.youkuaiyun.com/pointerz_zyz/article/details/160060102</link><guid>https://blog.youkuaiyun.com/pointerz_zyz/article/details/160060102</guid><author>pointerz_zyz</author><pubDate>Fri, 17 Apr 2026 09:00:00 +0800</pubDate><description><![CDATA[摘要：中介者模式是一种行为型设计模式，通过引入中介对象来协调多个对象间的交互，降低耦合度。该模式适用于对象间交互复杂、需要集中管理通信的场景，包含中介者、具体中介者、同事和具体同事四个角色。UML图展示了星形通信结构，相比直接通信的网状结构更简洁。代码示例演示了C++实现方式，同事对象通过中介者转发消息。优点包括降低耦合、提高可维护性，缺点可能使中介者过于复杂。中介者模式有效解决了对象间直接依赖问题，但需权衡其带来的复杂度。]]></description><category></category></item><item><title><![CDATA[24_访问者模式]]></title><link>https://blog.youkuaiyun.com/pointerz_zyz/article/details/160015857</link><guid>https://blog.youkuaiyun.com/pointerz_zyz/article/details/160015857</guid><author>pointerz_zyz</author><pubDate>Thu, 16 Apr 2026 09:00:00 +0800</pubDate><description><![CDATA[访问者模式是一种行为型设计模式，它分离对象结构与操作，允许在不修改类的情况下添加新操作。该模式包含访问者、具体访问者、元素、具体元素和对象结构五个角色，通过双重分派机制实现。适用场景包括需要对对象结构执行不同操作、添加新操作而不修改结构、或元素类型少但操作多的情况。优点包括符合开闭原则、提高灵活性，缺点则是增加系统复杂性、可能破坏封装性。示例代码展示了访问者模式的典型实现方式。]]></description><category></category></item><item><title><![CDATA[23_状态模式]]></title><link>https://blog.youkuaiyun.com/pointerz_zyz/article/details/160015812</link><guid>https://blog.youkuaiyun.com/pointerz_zyz/article/details/160015812</guid><author>pointerz_zyz</author><pubDate>Thu, 16 Apr 2026 09:00:00 +0800</pubDate><description><![CDATA[状态模式是一种行为型设计模式，允许对象在内部状态改变时改变其行为。它将状态逻辑封装到不同的状态类中，使对象行为随状态变化。适用于对象行为依赖于可变状态、状态数量较多或需要避免大量条件判断的场景。实现包含上下文（持有状态）、状态接口和具体状态类三个角色。优点包括提高代码清晰度、可维护性和灵活性，符合开闭原则；缺点可能增加系统复杂性和内存使用。通过状态类封装逻辑和上下文委托请求，实现了状态转换和行为变化。]]></description><category></category></item><item><title><![CDATA[22_备忘录模式]]></title><link>https://blog.youkuaiyun.com/pointerz_zyz/article/details/160015763</link><guid>https://blog.youkuaiyun.com/pointerz_zyz/article/details/160015763</guid><author>pointerz_zyz</author><pubDate>Wed, 15 Apr 2026 09:00:00 +0800</pubDate><description><![CDATA[备忘录模式是一种行为型设计模式，用于在不破坏封装性的前提下捕获和恢复对象内部状态。该模式包含三个核心角色：发起人（创建/恢复状态）、备忘录（存储状态）和管理者（保存/管理备忘录）。适用于需要实现撤销操作或状态保存的场景。其优点包括保持封装性、支持撤销功能，但可能增加内存使用和系统复杂度。通过窄接口原则确保状态安全性，同时将状态管理逻辑与业务逻辑分离。示例展示了如何使用C++实现状态保存与恢复的完整流程。]]></description><category></category></item><item><title><![CDATA[21_命令模式]]></title><link>https://blog.youkuaiyun.com/pointerz_zyz/article/details/160015719</link><guid>https://blog.youkuaiyun.com/pointerz_zyz/article/details/160015719</guid><author>pointerz_zyz</author><pubDate>Wed, 15 Apr 2026 09:00:00 +0800</pubDate><description><![CDATA[命令模式是一种行为型设计模式，通过将请求封装为对象来实现发送者与接收者的解耦。该模式适用于需要支持命令撤销、参数化请求、请求排队等场景，主要由命令接口、具体命令、接收者、调用者和客户端等角色组成。其优点是提高系统灵活性、支持撤销/重做，但会增加系统复杂性。UML图和代码示例展示了命令模式的具体实现方式，包括命令的封装、执行和撤销机制。]]></description><category></category></item><item><title><![CDATA[20_责任链模式]]></title><link>https://blog.youkuaiyun.com/pointerz_zyz/article/details/160015678</link><guid>https://blog.youkuaiyun.com/pointerz_zyz/article/details/160015678</guid><author>pointerz_zyz</author><pubDate>Tue, 14 Apr 2026 09:00:00 +0800</pubDate><description><![CDATA[责任链模式是一种行为型设计模式，允许多个对象处理请求，形成处理链。它适用于需要动态指定处理对象或避免发送者与接收者紧耦合的场景。实现包含处理者接口、具体处理者和客户端三部分，通过链式调用传递请求直至被处理。优点包括灵活性高、耦合度低、符合开闭原则；缺点是可能产生未处理请求、性能下降和系统复杂度增加。代码示例展示了如何创建处理链并传递不同请求。该模式特别适合需要多级处理或动态调整处理流程的系统设计。]]></description><category></category></item><item><title><![CDATA[19_迭代器模式]]></title><link>https://blog.youkuaiyun.com/pointerz_zyz/article/details/160015624</link><guid>https://blog.youkuaiyun.com/pointerz_zyz/article/details/160015624</guid><author>pointerz_zyz</author><pubDate>Tue, 14 Apr 2026 09:00:00 +0800</pubDate><description><![CDATA[迭代器模式是一种行为型设计模式，它通过提供统一的遍历接口来访问聚合对象中的元素，同时隐藏其内部结构。该模式包含迭代器、具体迭代器、聚合和具体聚合四个核心角色，适用于需要统一遍历不同聚合对象或修改遍历过程的场景。示例代码展示了C++实现方式，展示了如何创建和使用迭代器。其优点包括隐藏内部结构、统一接口和遵循单一职责原则，但会增加系统复杂性和可能的内存泄漏风险。]]></description><category></category></item><item><title><![CDATA[18_观察者模式]]></title><link>https://blog.youkuaiyun.com/pointerz_zyz/article/details/159909088</link><guid>https://blog.youkuaiyun.com/pointerz_zyz/article/details/159909088</guid><author>pointerz_zyz</author><pubDate>Mon, 13 Apr 2026 09:00:00 +0800</pubDate><description><![CDATA[观察者模式是一种行为型设计模式，实现对象间一对多的依赖关系。当主题对象状态变化时，自动通知所有观察者对象。该模式包含主题（Subject）、具体主题（ConcreteSubject）、观察者（Observer）和具体观察者（ConcreteObserver）四个角色。其优点包括松耦合、广播通信、开闭原则支持和实时通信，但也可能导致大量观察者对象和循环依赖问题。代码示例展示了C++实现方式，通过attach/detach管理观察者，setMessage触发通知流程。UML图和序列图清晰展示了模式结构和消息流程]]></description><category></category></item><item><title><![CDATA[17_模板方法模式]]></title><link>https://blog.youkuaiyun.com/pointerz_zyz/article/details/159908931</link><guid>https://blog.youkuaiyun.com/pointerz_zyz/article/details/159908931</guid><author>pointerz_zyz</author><pubDate>Mon, 13 Apr 2026 09:00:00 +0800</pubDate><description><![CDATA[模板方法模式是一种行为设计模式，它通过定义算法骨架（模板方法）并将特定步骤延迟到子类实现，实现代码复用和扩展控制。该模式适用于需要固定算法流程但允许部分步骤灵活变化的场景，由抽象类（定义模板方法和基本操作）和具体类（实现特定步骤）组成。其优点包括减少重复代码、符合开闭原则，但也可能导致类数量增加和算法修改困难。UML图和代码示例展示了抽象类定义流程、具体类实现细节的典型结构。]]></description><category></category></item><item><title><![CDATA[16_策略模式]]></title><link>https://blog.youkuaiyun.com/pointerz_zyz/article/details/159908879</link><guid>https://blog.youkuaiyun.com/pointerz_zyz/article/details/159908879</guid><author>pointerz_zyz</author><pubDate>Sun, 12 Apr 2026 09:00:00 +0800</pubDate><description><![CDATA[策略模式是一种行为型设计模式，它将算法封装为独立类，使它们可以互相替换。该模式包含策略接口、具体策略实现类和上下文类三个主要角色，通过组合方式实现算法与使用者的解耦。策略模式适用于需要在运行时切换算法、避免大量条件判断的场景，提高了代码的灵活性和可维护性，但会增加系统复杂度和对象数量。示例代码展示了如何通过策略模式实现不同的排序算法，并在运行时动态切换策略。]]></description><category></category></item><item><title><![CDATA[15_享元模式]]></title><link>https://blog.youkuaiyun.com/pointerz_zyz/article/details/159908806</link><guid>https://blog.youkuaiyun.com/pointerz_zyz/article/details/159908806</guid><author>pointerz_zyz</author><pubDate>Sun, 12 Apr 2026 09:00:00 +0800</pubDate><description><![CDATA[享元模式是一种通过共享对象来优化内存和性能的结构型设计模式。它适用于需要创建大量相似对象且大部分状态可共享的场景，通过区分内部状态（可共享）和外部状态（由客户端传入）来减少对象创建。实现包含享元接口、具体享元、享元工厂和客户端四个角色。优点是降低内存使用、提高性能，但会增加系统复杂度。代码示例展示了如何通过享元工厂管理共享对象池，实现对象的复用。]]></description><category></category></item><item><title><![CDATA[14_组合模式]]></title><link>https://blog.youkuaiyun.com/pointerz_zyz/article/details/159908760</link><guid>https://blog.youkuaiyun.com/pointerz_zyz/article/details/159908760</guid><author>pointerz_zyz</author><pubDate>Sat, 11 Apr 2026 09:00:00 +0800</pubDate><description><![CDATA[组合模式是一种结构型设计模式，用于表示&quot;部分-整体&quot;的树形层次结构。它通过定义统一的组件接口，让客户端可以一致地处理单个对象（叶节点）和对象组合（复合节点）。该模式包含组件、叶子和复合三个核心角色，复合节点可以递归包含其他组件形成树形结构。组合模式简化了客户端代码，支持递归处理，符合开闭原则，但也可能导致设计过于一般化。典型应用场景包括需要处理对象层次结构的系统，如文件系统、UI组件等。实现时需要注意叶节点和复合节点的不同行为。]]></description><category></category></item><item><title><![CDATA[13_桥接模式]]></title><link>https://blog.youkuaiyun.com/pointerz_zyz/article/details/159908689</link><guid>https://blog.youkuaiyun.com/pointerz_zyz/article/details/159908689</guid><author>pointerz_zyz</author><pubDate>Sat, 11 Apr 2026 09:00:00 +0800</pubDate><description><![CDATA[摘要：桥接模式是一种结构型设计模式，通过将抽象部分与实现部分分离，使二者能够独立变化。它适用于需要在多个维度扩展类或避免抽象与实现固定绑定的场景。该模式包含抽象、扩展抽象、实现和具体实现四个角色，通过聚合关系桥接抽象与实现维度。优点包括提高扩展性和维护性，符合开闭原则；缺点可能增加系统复杂性和设计难度。代码示例展示了如何通过接口和继承实现桥接模式的基本结构。]]></description><category></category></item><item><title><![CDATA[12_外观模式]]></title><link>https://blog.youkuaiyun.com/pointerz_zyz/article/details/159908605</link><guid>https://blog.youkuaiyun.com/pointerz_zyz/article/details/159908605</guid><author>pointerz_zyz</author><pubDate>Fri, 10 Apr 2026 09:00:00 +0800</pubDate><description><![CDATA[外观模式是一种结构型设计模式，它为复杂子系统提供统一的高层接口，简化客户端调用。该模式包含外观类（提供统一接口）和子系统类（实现具体功能），通过外观类将客户端请求委派给子系统处理。主要优点包括降低系统耦合度、简化客户端调用、隐藏实现细节；缺点可能造成外观类过于复杂，且子系统变更需修改外观类。适用于需要为复杂系统提供简单接口、减少系统耦合度的场景。]]></description><category></category></item><item><title><![CDATA[11_代理模式]]></title><link>https://blog.youkuaiyun.com/pointerz_zyz/article/details/159908478</link><guid>https://blog.youkuaiyun.com/pointerz_zyz/article/details/159908478</guid><author>pointerz_zyz</author><pubDate>Fri, 10 Apr 2026 09:00:00 +0800</pubDate><description><![CDATA[代理模式摘要 代理模式是一种结构型设计模式，通过创建代理对象来控制对真实对象的访问。它包含三个核心角色：抽象主题接口、真实主题实现类和代理类。代理模式适用于需要添加访问控制、延迟加载或远程访问等场景。 实现方式上，代理类持有真实对象的引用，并在转发请求前后插入额外逻辑（如权限检查、日志记录）。该模式遵循开闭原则，能在不修改真实对象的情况下扩展功能。 主要优点包括解耦客户端与真实对象、实现延迟加载和访问控制；缺点是增加了系统复杂度，可能影响性能。代码示例展示了代理如何包装真实对象，在请求处理前后添加额外操作。]]></description><category></category></item><item><title><![CDATA[10_装饰器模式]]></title><link>https://blog.youkuaiyun.com/pointerz_zyz/article/details/159908323</link><guid>https://blog.youkuaiyun.com/pointerz_zyz/article/details/159908323</guid><author>pointerz_zyz</author><pubDate>Thu, 09 Apr 2026 09:00:00 +0800</pubDate><description><![CDATA[装饰器模式是一种动态扩展对象功能的结构型设计模式，允许在不修改原有对象的情况下添加额外职责。通过组合而非继承实现功能扩展，包含组件、具体组件、装饰器和具体装饰器等角色。UML结构展示了装饰器与组件的聚合关系及多级嵌套能力。代码示例演示了如何通过装饰器层层包装组件对象。该模式的优点包括动态扩展、避免继承爆炸、符合开放封闭原则，但可能增加系统复杂性并使代码难以理解。适用于需要灵活添加或移除对象功能的场景。]]></description><category></category></item><item><title><![CDATA[09_适配器模式]]></title><link>https://blog.youkuaiyun.com/pointerz_zyz/article/details/159908145</link><guid>https://blog.youkuaiyun.com/pointerz_zyz/article/details/159908145</guid><author>pointerz_zyz</author><pubDate>Thu, 09 Apr 2026 09:00:00 +0800</pubDate><description><![CDATA[适配器模式是一种结构型设计模式，用于解决接口不兼容问题。它通过转换接口使原本不兼容的类能够协同工作，主要有类适配器（继承实现）和对象适配器（组合实现）两种方式。该模式适用于复用现有类但接口不匹配的场景，优点包括提高系统扩展性和代码复用性，缺点可能增加系统复杂度和耦合度。代码示例展示了两种适配器实现方式，通过将Adaptee的specificRequest()适配为Target的request()接口。]]></description><category></category></item><item><title><![CDATA[08_原型模式]]></title><link>https://blog.youkuaiyun.com/pointerz_zyz/article/details/159886935</link><guid>https://blog.youkuaiyun.com/pointerz_zyz/article/details/159886935</guid><author>pointerz_zyz</author><pubDate>Wed, 08 Apr 2026 09:00:00 +0800</pubDate><description><![CDATA[摘要：原型模式是一种通过复制现有对象来创建新对象的设计模式，避免了复杂的实例化过程。它适用于创建成本高或与现有对象相似的新对象场景。实现包含原型接口、具体原型类和客户端三个角色，通过clone()方法复制对象。该模式优点是快速创建、动态增减对象，缺点是实现复杂且可能引发循环引用问题。代码示例展示了C++中如何实现原型模式。]]></description><category></category></item><item><title><![CDATA[07_建造者模式]]></title><link>https://blog.youkuaiyun.com/pointerz_zyz/article/details/159886923</link><guid>https://blog.youkuaiyun.com/pointerz_zyz/article/details/159886923</guid><author>pointerz_zyz</author><pubDate>Wed, 08 Apr 2026 09:00:00 +0800</pubDate><description><![CDATA[建造者模式是一种创建型设计模式，用于分离复杂对象的构建过程和表示。它适用于创建具有复杂内部结构或多属性的对象，通过抽象建造者定义接口，具体建造者实现构建逻辑，指挥者控制构建顺序。UML图展示了产品、建造者和指挥者之间的关系。代码示例演示了如何使用C++实现建造者模式，创建不同表示的产品。优点是构建与表示分离、控制精细、符合单一职责原则；缺点是增加系统复杂度，产品结构变化时需修改所有建造者类。]]></description><category></category></item></channel></rss>