From c46e50e71af109838b43cfae29aa00dcd695eaf0 Mon Sep 17 00:00:00 2001 From: LingCoder Date: Tue, 25 Dec 2018 22:36:47 +0800 Subject: [PATCH] update glossary --- GLOSSARY.md | 6 +++++- book/01-What-is-an-Object.md | 21 ++++++++++++++++++++- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/GLOSSARY.md b/GLOSSARY.md index 42f808c..81cbf2e 100644 --- a/GLOSSARY.md +++ b/GLOSSARY.md @@ -1,7 +1,11 @@ ## 词汇表 -### OOP (Object-oriented programming ) +### OOP (*Object-oriented programming* ) 面向对象编程,一种编程思维模式和编程架构 +### UML(*Unified Modeling Language*) + + 统一建模语言 + diff --git a/book/01-What-is-an-Object.md b/book/01-What-is-an-Object.md index 79e773e..f6106f9 100644 --- a/book/01-What-is-an-Object.md +++ b/book/01-What-is-an-Object.md @@ -80,7 +80,6 @@ lt.on(); ## 隐藏实现 - 我们可以把编程的侧重领域划分为研发和应用。应用程序员调用研发程序员构建的基础工具类来做快速开发。研发程序员开发一个工具类,该工具类仅向应用程序员公开必要的内容,并隐藏内部实现的细节。这样可以有效地避免该工具类被错误的使用和更改,从而减少程序出错的可能。彼此职责划分清晰,相互协作。当应用程序员调用研发程序员开发的工具类时,双方建立了关系。应用程序员通过使用现成的工具类组装应用程序或者构建更大的工具库。如果工具类的创建者将类的内部所有信息都公开给调用者,那么有些使用规则就不容易被遵守。因为前者无法保证后者是否按照正确的规则来使用或是改变了该工具类。只有设定访问控制,才能从根本上阻止。 因此,使用访问控制的原因有以下2点: @@ -102,6 +101,26 @@ Java 有三个显式关键字来设置类中的访问权限:`public`(公开 ## 复用性 +创建并测试好一个类后,它应(从理想的角度)代表一个有用的代码单位。但并不象许多人希望的那样,这 +种重复使用的能力并不容易实现;它要求较多的经验以及洞察力,这样才能设计出一个好的方案,才有可能 +重复使用。 + +许多人认为代码或设计方案的重复使用是面向对象的程序设计提供的最伟大的一种杠杆。 +为重复使用一个类,最简单的办法是仅直接使用那个类的对象。但同时也能将那个类的一个对象置入一个新 +类。我们把这叫作“创建一个成员对象”。新类可由任意数量和类型的其他对象构成。无论如何,只要新类 +达到了设计要求即可。这个概念叫作“组织”——在现有类的基础上组织一个新类。有时,我们也将组织称 +作“包含”关系,比如“一辆车包含了一个变速箱”。 + +对象的组织具有极大的灵活性。新类的“成员对象”通常设为“私有”(Private),使用这个类的客户程序 +员不能访问它们。这样一来,我们可在不干扰客户代码的前提下,从容地修改那些成员。也可以在“运行 +期”更改成员,这进一步增大了灵活性。后面要讲到的“继承”并不具备这种灵活性,因为编译器必须对通 +过继承创建的类加以限制。 + +由于继承的重要性,所以在面向对象的程序设计中,它经常被重点强调。作为新加入这一领域的程序员,或 +许早已先入为主地认为“继承应当随处可见”。沿这种思路产生的设计将是非常笨拙的,会大大增加程序的 +复杂程度。相反,新建类的时候,首先应考虑“组织”对象;这样做显得更加简单和灵活。利用对象的组 +织,我们的设计可保持清爽。一旦需要用到继承,就会明显意识到这一点。 + ## 继承