【2012.10.27~2012.10.30】编程规范之对象和数据结构

// // // // // // // //

///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

// // // // // // // //

正如上面我们看到的程序那样,


过程式代码更加倾向于在不修改数据的情况下进行添加函数的操作。

然而如果增加或是删除了数据的话,过程式代码几乎就要全部进行更改。


多态式代码由于本身就是抽象的,就像是一个橡皮泥,

"它就在那里,不增不减,不多不少。"

它函数的实现并不关乎数据是什么,

因此增减数据并不会对真正意义上的多态式代码构成过大的损害。

不过,

如果是增加函数的话,

从更大一个层次——类的角度来说,

对于多态式代码是不利的,

因为这就意味着必须修改所有相关类。


鉴于以上观点,

可以得出一个结论:

添加新的数据类型而不是函数的时候,对象和面向对象就更合适。

添加新函数而不是数据类型的时候,过程式代码和数据结构更合适。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值