// // // // // // // //
///2012.10.27
// // // // // // // //
今天为接下来几天要讲的对象与数据结构规范开一个头。
面向对象设计与面向过程设计这个相信大家已经很熟悉了,
但是他们应该应用在那些方面呢?
接下来的几天我将讲解一下如何正确的选择使用对象/面向对象与数据/面向过程。
// // // // // // // //
///2012.10.29
// // // // // // // //
这次我们详细为大家阐述数据结构与对象实现同样的功能的不同过程。
public class Point {
public int x;
public int y;
}
public interface Point {
int getX();
int getY();
void setX(int x);
void setY(int y);
}
可以看到,
第一个代码实现将内部的变量数据暴露地一览无余,
而第二个代码实现则将对存取器进行了抽象封装。
虽然是一个简单的比较,
但是很清晰地将二者的区别表现了出来。
那么接下来的内容我们将以这两段代码为基础,
继续深入剖析对象层次与数据结构之间的使用方法。
// // // // // // // //
///2012.10.30
// // // // // // // //
正如上面我们看到的程序那样,
过程式代码更加倾向于在不修改数据的情况下进行添加函数的操作。
然而如果增加或是删除了数据的话,过程式代码几乎就要全部进行更改。
多态式代码由于本身就是抽象的,就像是一个橡皮泥,
"它就在那里,不增不减,不多不少。"
它函数的实现并不关乎数据是什么,
因此增减数据并不会对真正意义上的多态式代码构成过大的损害。
不过,
如果是增加函数的话,
从更大一个层次——类的角度来说,
对于多态式代码是不利的,
因为这就意味着必须修改所有相关类。
鉴于以上观点,
可以得出一个结论:
添加新的数据类型而不是函数的时候,对象和面向对象就更合适。
添加新函数而不是数据类型的时候,过程式代码和数据结构更合适。