# Rust设计模式 **Repository Path**: yang-yi-li/rsdp ## Basic Information - **Project Name**: Rust设计模式 - **Description**: ⭐ Rust 🦀 设计模式 ⭐ - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: rsdp - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 0 - **Created**: 2024-06-26 - **Last Updated**: 2025-01-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: Rust, 设计模式 ## README

⭐ rs 🦀 dp ⭐

⭐ Rust 🦀 设计模式 ⭐
🦀 Rust 这种语言使每个人都能够构建可靠且高效的软件 🦀

## 💠 _设计模式_ ### 🔹 _创建型模式_ 1. **工厂方法(Factory Method):** `定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类的实例化延迟到子类。` 2. **抽象工厂(Abstract Factory):** `提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。通过使用抽象工厂模式,可以将产品的创建和使用分离,从而更容易更换产品系列。` 3. **生成器(Builder):** `通过一步一步地构建一个复杂对象。生成器模式允许按步骤创建复杂对象,而不是一步完成,提供更好的控制和灵活性。` 4. **原型(Prototype):** `通过复制现有的实例来创建新对象。原型模式适用于希望避免高开销的对象创建场景,通过克隆现有对象来提高性能。` 5. **单例(Singleton):** `确保一个类只有一个实例,并提供全局访问点。单例模式在需要全局共享数据或控制资源访问的场景下非常有用。` ### 🔹 _结构型模式_ 1. **适配器(Adapter):** `将一个类的接口转换为客户希望的另一个接口,使得原本由于接口不兼容而不能一起工作的类可以协同工作。` 2. **桥接(Bridge):** `将抽象部分与它的实现部分分离,使它们都可以独立地变化。桥接模式通过组合而非继承来达到更好的扩展性和灵活性。` 3. **组合(Composite):** `将对象组合成树形结构以表示部分-整体的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。` 4. **装饰(Decorator):** `动态地给对象添加一些额外的职责。装饰模式提供了比继承更有弹性的替代方案来扩展功能。` 5. **外观(Facade):** `为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,使得子系统更易于使用。` 6. **享元(Flyweight):** `通过共享相同对象来减少内存使用和提高性能。享元模式适用于大量细粒度对象的场景。` 7. **代理(Proxy):** `为另一个对象提供一个代理,以控制对这个对象的访问。代理模式可以提供额外的功能,比如延迟加载、访问控制等。` ### 🔹 _行为模式_ 1. **责任链(Chain of Responsibility):** `将请求沿着处理者链传递,直到有一个处理者处理它。责任链模式解耦了请求的发送者和接收者。` 2. **命令(Command):** `将请求封装成对象,从而使您可以用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。` 3. **迭代器(Iterator):** `提供一种方法顺序访问聚合对象中的各个元素,而不暴露其内部的表示。迭代器模式使得遍历聚合对象更加灵活。` 4. **中介者(Mediator):** `定义一个对象封装一组对象之间的交互。中介者使得对象不需要显式地相互引用,从而使得它们的耦合松散,可以独立地变化。` 5. **备忘录(Memento):** `在不破坏封装的前提下,捕获并外部化一个对象的内部状态,以便以后可以恢复到这个状态。备忘录模式用于需要保存和恢复对象状态的场景。` 6. **观察者(Observer):** `定义对象间的一对多依赖,当一个对象改变状态时,其所有依赖者都会得到通知并自动更新。观察者模式用于实现事件处理系统。` 7. **状态(State):** `允许对象在内部状态改变时改变其行为。状态模式使得状态相关的行为局部化,并将不同状态的行为分离。` 8. **策略(Strategy):** `定义一系列算法,将每个算法封装起来,并使它们可以互换。策略模式使得算法可以独立于使用它的客户而变化。` 9. **模板方法(Template Method):** `定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法模式使得子类可以在不改变算法结构的情况下重新定义算法的某些步骤。` 10. **访问者(Visitor):** `表示一个作用于某对象结构中的各元素的操作。它使您可以在不改变各元素的类的前提下定义作用于这些元素的新操作。` ## 💠 _命令行使用_ ```sh rsdp.exe [选项一] [选项二] ``` ## 🔹 _参考网址_ 1. [Rust 官网](https://www.rust-lang.org/)