Replace Array with Object (以对象取代数组)

Summary: 

有一个数组,其中的元素各自代表不同的东西。以对象替换数组。对于数组中的每个元素,以一个字段来表示。

Motivation:

数组是一种常见的用以组织数据的结构。不过,它们应该只用于“以某种顺序容纳一组相似对象”。有时候一个数组容纳了多种不同的对象,这会给客户带来麻烦,因为他们很难记住像“数组的第一个元素是人名”这样的约定。对象就不痛了,你可以运用字段名称和函数名称来传达这样的信息,因此你无需死记它,也无需依赖注释。而且如果使用对象,还可以将信息封装起来,并使用Move Method为它加上相关行为。

Mechanics:

1.新建一个类表示数组所拥有的信息,并在其中以一个public字段保存原先的数组。

2.修改数组的所有用户,让它们改用新类的实例。

3.编译,测试。

4.逐一为数组元素添加取值/设值函数。根据元素的用途,为这些访问函数命名。修改客户端代码,让它们通过访问函数取用数组内的元素。每次修改后,编译并测试。

5.当所有对数组的直接访问都转而调用访问函数后,将新类中保存该数组的字段声明为private。

6.编译

7.对于数组内的每一个元素,在新类重创建一个类型相当的字段。修改该元素的访问函数,令它改用上述的新建字段。

8.每修改一个元素,编译并测试。

9.数组的所有元素都有了相应字段之后,删除该数组。

转载于:https://my.oschina.net/u/134516/blog/132094

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值