<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>第18章 面向对象编程特性 on 编程那些事儿</title><link>https://before80.github.io/prgms/Rust/trpl/oop/</link><description>Recent content in 第18章 面向对象编程特性 on 编程那些事儿</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Tue, 11 Aug 2026 23:57:44 +0800</lastBuildDate><atom:link href="https://before80.github.io/prgms/Rust/trpl/oop/index.xml" rel="self" type="application/rss+xml"/><item><title>18.1 面向对象语言的特征</title><link>https://before80.github.io/prgms/Rust/trpl/oop/01-what-is-oo/</link><pubDate>Wed, 05 Aug 2026 08:44:00 +0800</pubDate><guid>https://before80.github.io/prgms/Rust/trpl/oop/01-what-is-oo/</guid><description>&lt;blockquote&gt;
&lt;p&gt;译文 · 基于 &lt;a href="https://doc.rust-lang.org/stable/book/"&gt;The Rust Programming Language&lt;/a&gt;（rustc 1.97.1）&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h1 id="面向对象语言的特征"&gt;面向对象语言的特征&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;原文链接: &lt;a href="https://doc.rust-lang.org/stable/book/ch18-01-what-is-oo.html"&gt;https://doc.rust-lang.org/stable/book/ch18-01-what-is-oo.html&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="面向对象语言的特征-1"&gt;面向对象语言的特征&lt;/h2&gt;
&lt;p&gt;　　编程社区对一门语言必须具备哪些特性才算面向对象并无共识。Rust 受到多种编程范式影响，也包括 OOP；例如，我们在第 13 章探讨过源自函数式编程的特性。可以说，OOP 语言共享某些常见特征——即对象、封装与继承。下面逐一看这些特征的含义，以及 Rust 是否支持。&lt;/p&gt;</description></item><item><title>18.2 用 Trait 对象抽象共享行为</title><link>https://before80.github.io/prgms/Rust/trpl/oop/02-trait-objects/</link><pubDate>Wed, 05 Aug 2026 08:44:00 +0800</pubDate><guid>https://before80.github.io/prgms/Rust/trpl/oop/02-trait-objects/</guid><description>&lt;blockquote&gt;
&lt;p&gt;译文 · 基于 &lt;a href="https://doc.rust-lang.org/stable/book/"&gt;The Rust Programming Language&lt;/a&gt;（rustc 1.97.1）&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h1 id="trait"&gt;用 Trait 对象抽象共享行为&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;原文链接: &lt;a href="https://doc.rust-lang.org/stable/book/ch18-02-trait-objects.html"&gt;https://doc.rust-lang.org/stable/book/ch18-02-trait-objects.html&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="using-trait-objects-to-abstract-over-shared-behavior"&gt;用 Trait 对象抽象共享行为&lt;/h2&gt;
&lt;p&gt;　　在第 8 章我们提到，向量的一个限制是只能存储单一类型的元素。我们在示例 8-9 中做了变通：定义了带有保存整数、浮点数与文本变体的 &lt;code&gt;SpreadsheetCell&lt;/code&gt; 枚举。这样我们就能在每个单元格中存储不同类型的数据，同时仍有一个表示一行单元格的向量。当我们可互换的项是编译时已知的固定类型集合时，这是完全好的方案。&lt;/p&gt;</description></item><item><title>18.3 实现面向对象设计模式</title><link>https://before80.github.io/prgms/Rust/trpl/oop/03-oo-design-patterns/</link><pubDate>Wed, 05 Aug 2026 08:44:00 +0800</pubDate><guid>https://before80.github.io/prgms/Rust/trpl/oop/03-oo-design-patterns/</guid><description>&lt;blockquote&gt;
&lt;p&gt;译文 · 基于 &lt;a href="https://doc.rust-lang.org/stable/book/"&gt;The Rust Programming Language&lt;/a&gt;（rustc 1.97.1）&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h1 id="实现面向对象设计模式"&gt;实现面向对象设计模式&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;原文链接: &lt;a href="https://doc.rust-lang.org/stable/book/ch18-03-oo-design-patterns.html"&gt;https://doc.rust-lang.org/stable/book/ch18-03-oo-design-patterns.html&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="实现面向对象设计模式-1"&gt;实现面向对象设计模式&lt;/h2&gt;
&lt;p&gt;　　&lt;em&gt;状态模式&lt;/em&gt;（state pattern）是一种面向对象设计模式。该模式的核心是：我们定义一个值在内部可以具有的一组状态。这些状态由一组&lt;em&gt;状态对象&lt;/em&gt;表示，值的行为随其状态而变。我们将通过一个博客帖子结构体的例子逐步推进：该结构体有一个字段保存其状态，状态对象来自集合「草稿」「审阅」或「已发布」。&lt;/p&gt;</description></item></channel></rss>