(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) —— 帮助你定义系统中对象之间的通信,以及复杂程序中如何控制数据流。
创建型模式:抽象工厂模式、生成器模式、工厂方法模式、原型模式、单例模式
结构型模式:适配器模式、桥接模式、组合模式、装饰器模式、外观模式、享元模式、代理模式
行为型模式:职责连模式、命令模式、解释器模式、迭代器模式、中介者模式、备忘录模式、观察着模式、状态模式、策略模式、模板方法模式、访问模式