Skip to content

Commit ddfd2e2

Browse files
committed
校对第8章开篇
1 parent 36fb98f commit ddfd2e2

File tree

1 file changed

+10
-6
lines changed

1 file changed

+10
-6
lines changed

book/08-Reuse.md

+10-6
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,19 @@
22

33
<!-- Reuse -->
44
# 第八章 复用
5-
代码复用是使用面向对象编程(OOP)最令人信服的理由之一
65

7-
对于像C语言等面向过程语言来说,“复用”通常指的是“复制代码”,对于任何语言来说都可以这样简单来做,但实际效果并不会好。就像Java里的所有东西一样,解决问题要围绕“类(class)”展开。你可以通过创建新的class来重用代码,但并不是白手起家,而是使用别人已经构建或调试过的已经存在的class。
86

9-
如何在不弄脏已经存在的代码的情况下来使用class,是需要技巧的,在本章,你将学到两种方式来达到这个目的。
10-
第一种方式相当直接了当:在新的class中创建已有class的对象。这种方式叫做“组合”(composition),因为新的class是已经存在的类的对象里一个组成部分,通过这种方式你可以重用代码的功能而不是它原本的形式。
11-
第二种方式就比较微妙了,通过已有的class的“样式”,创建一种新的class。照字面理解就是,你可以采用已有class的形式,但编程的时候不会改动已有的class。这种方式叫做“继承”,编译器会处理大量的工作。继承是面向对象编程(OOP)的基础之一,由此带来的附加功能将会在“多态”章节中介绍。
7+
> 代码复用是面向对象编程(OOP)最具魅力的原因之一。
128
13-
组合和继承在很多语法和行为上是相似的(这其实是有道理的,因为他们都是用已有的类型构建新的类型)。在本章中,你会学到这两种代码重用的方法。
9+
对于像 C 语言等面向过程语言来说,“复用”通常指的就是“复制代码”。任何语言都可通过简单复制来达到代码复用的目的,但是这样做的效果并不好。Java 围绕“类”(**Class**)来解决问题。我们可以直接使用别人构建或调试过的代码,而非创建新类、重新开始。
10+
11+
如何在不污染源代码的前提下使用现存代码是需要技巧的。在本章里,你将学习到两种方式来达到这个目的:
12+
13+
1. 第一种方式直接了当。在新类中创建现有类的对象。这种方式叫做“组合”(**Composition**),通过这种方式复用代码的功能,而非其形式。
14+
15+
2. 第二种方式更为微妙。通过现有类创建新类。照字面理解:采用现有类形式,又无需在编码时改动其代码,这种方式就叫做“继承”(**Inheritance**)。**继承**是面向对象编程(**OOP**)的重要基础之一。更多功能相关将在[多态](./09-Polymorphism.md)**Polymorphism**)章节中介绍。
16+
17+
组合与继承的语法、行为上有许多相似的地方(这其实是有道理的,毕竟都是基于现有类型构建新的类型)。在本章中,你会学到这两种代码复用的方法。
1418

1519
<!-- Composition Syntax -->
1620
## 组合语法

0 commit comments

Comments
 (0)