面向对象程序设计语言五大基本特征
1. Everything is an object. Think of an object as a fancy variable
2. A program is a bunch of objects telling each other what to do by sending messages.
3. Each object has its own memory made up of other objects.
4. Every object has a type.
5. All objects of a particular type can receive the same messages.
An object has an interface
“类型”与“接口”的等价或对应关系是面向对象程序设计的基础
The hidden implementation(public,private,protected,friendly)
有两方面的原因促使我们控制对成员的访问。
第一个原因是防止程序员接触他们不该接触的东西——通常是内部数据类型的设计思想
第二个原因是允许库设计人员修改内部结构,不用担心它会对客户程序员造成什么影响(所以这里要求接口要设计的好)
继承与组成
(继承的本意在于抽象,而非代码重用)
什么时候应该使用继承?只在抽象类中使用,其他情况下尽量不使用
如果我们会使用OO的多态性,则使用继承
abstract interface
对象在何处?如何创建?
在一个内存池中动态创建对象,该内存池亦叫“堆”或者“内存堆”
对象如何毁灭?
垃圾收集器
Collection 对象集合
Iterator 提供了某种抽象层级,可将 容器实作细节 和 对容器进行存取动作的程序 分离开来
分析与设计
1 建立什么(Who What How and possible problems)use case diagrams简单为好(日程表)
2 如何建立 (UML)
3 打造核心 (建立框架)
4 一个一个模块的完成
5 维护
XP(极限编程)
1 测试先行
2 搭档设计
1. Everything is an object. Think of an object as a fancy variable
2. A program is a bunch of objects telling each other what to do by sending messages.
3. Each object has its own memory made up of other objects.
4. Every object has a type.
5. All objects of a particular type can receive the same messages.
An object has an interface
“类型”与“接口”的等价或对应关系是面向对象程序设计的基础
The hidden implementation(public,private,protected,friendly)
有两方面的原因促使我们控制对成员的访问。
第一个原因是防止程序员接触他们不该接触的东西——通常是内部数据类型的设计思想
第二个原因是允许库设计人员修改内部结构,不用担心它会对客户程序员造成什么影响(所以这里要求接口要设计的好)
继承与组成
(继承的本意在于抽象,而非代码重用)
什么时候应该使用继承?只在抽象类中使用,其他情况下尽量不使用
如果我们会使用OO的多态性,则使用继承
abstract interface
对象在何处?如何创建?
在一个内存池中动态创建对象,该内存池亦叫“堆”或者“内存堆”
对象如何毁灭?
垃圾收集器
Collection 对象集合
Iterator 提供了某种抽象层级,可将 容器实作细节 和 对容器进行存取动作的程序 分离开来
分析与设计
1 建立什么(Who What How and possible problems)use case diagrams简单为好(日程表)
2 如何建立 (UML)
3 打造核心 (建立框架)
4 一个一个模块的完成
5 维护
XP(极限编程)
1 测试先行
2 搭档设计