《写给大家看的面向对象编程书》 - 书摘精要

时间:2021-05-13 17:25:19

(P2) 对象(Object)可以定义为同时包含数据和行为的一个实体。这里的“同时包含”正是OO程序设计和其它程序设计方法的重要区别。

 

(P5) 对象是OO程序的构建模块,使用OO技术的程序实际上是多个对象的集合。

 

(P13) 类的接口是公共方法,而方法的接口则是关于如何调用这些方法。

 

(P31) 最新接口——尽管可能有些极端,但是要确定最小接口,一种方法就是开始时不向用户提供任何公共接口。

 

(P39) 构造函数没有返回值,如果方法提供了一个返回值,编译器就不会把它作为一个构造函数。

 

(P40) 至少存在一个构造函数,不论你自己是否编写了构造函数。

 

(P41) 重载方法: 签名 = 方法名 + 参数列表

 

(P44) 构造函数可以用来确保应用处于一种稳定的状态。

 

(P50) 关键字 this 是当前对象的一个引用。

 

(P64) 私有方法只是实现的一部分,不能由其它类访问。

 

(P70) 设计类时,最重要的设计问题之一是类如何构造。

 

(P72) 设计一个系统时,如果它必须使用不可移植的代码,就应当将这些代码从类中抽取出来。抽出不可移植的代码是指,将这些不可移植的代码单独放在一个类中,或者至少单独放在一个方法中。

 

(P81) 一般地,一个可靠的OO设计过程往往包括以下步骤:

1. 完成适当的分析;

2. 建立一份描述系统的工作陈述;

3. 从这个工作陈述中手机需求;

4. 开发一个用户界面原型;

5. 明确类;

6. 确定各个类的职责;

7. 确定各个类如何相互交互;

8. 创建一个高层模型来描述要构建的系统;

 

(P107) 如果某个对象由其它对象组成,而且这些对象作为对象字段包含在内,则这个新对象就成为“复合对象”(Compound Objecct)、“聚集对象”(Aggregate Object)或“组合对象”(Composite Object)。

 

(P108)

聚集在UML中表示为一端带菱形的线;

关联只用线表示(没有菱形);

 

(P112) 多态是继承最精彩的用法之一。

 

(P119) 框架的思想就围绕着这些即插即用和重用原则。

 

(P120) 在商业社会下,由于时间非常宝贵,人们不想总去学新的东西(除非绝对必要)。

 

(P123) 抽象类的定义是它包含一个或多个抽象方法,这说明抽象类也可以提供具体方法。

 

(P127) 接口绝对不会提供任何类型的实现,只提供行为而已。

 

(P128) 继承和接口都能构成一种“is-a”的关系;

 

(P147) 聚集是由其它对象组成的复杂对象,当一个对象希望另一个对象为它完成某个服务时则使用关联。

 

(P158)

Public - 可以由同一个程序集或引用它的另一个程序集中任何其他代码访问;

Private - 只能由同一个类或结构中的代码访问;

Protected - 只能由同一个类或结构或者派生类中的代码访问;

Internal - 可以由同一个程序集中的任何代码访问,但是其它程序集中的代码不允许访问;

 

(P166) DTD - Document Type Definition 文档定义类型

 

(P182)

串行化:

1. 可以将对象作为一个不可划分的单元写至文件;

2. 可以将对象恢复为存储时的状态;

 

(P235)

创建型模式 (Creational Pattern) —— 这些模式将为你创建对象,而不是由你直接实例化对象。这样在确定给定情况下需要创建哪些对象时,程序会有更大的灵活性。

 

结构性模式 (Structural Pattern) —— 可以帮助你将多组对象组合为更大的结构,如复杂的用户界面审计数据。

 

行为型模式 (Behavioral Pattern) —— 帮助你定义系统中对象之间的通信,以及复杂程序中如何控制数据流。

 

创建型模式:抽象工厂模式、生成器模式、工厂方法模式、原型模式、单例模式

 

结构型模式:适配器模式、桥接模式、组合模式、装饰器模式、外观模式、享元模式、代理模式

 

行为型模式:职责连模式、命令模式、解释器模式、迭代器模式、中介者模式、备忘录模式、观察着模式、状态模式、策略模式、模板方法模式、访问模式