重构——22以对象取代数组(Replace Array with Object)

简介: 以对象取代数组(Replace Array with Object):你有一个数组,其中的元素各自代表不同的东西;以对象替换数组。对于数组中的每个元素,以一个字段来表示

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

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

一、动机

数组应该只用于“以某种顺序容纳一组相似对象”

二、做法

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

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

3、编译,测试

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

5、当所有对数组的访问都改成了调用访问函数后,将新类的保存该数组的字段声明为private

6、编译

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

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

9、数组的所有元素都有了相应自断后,删除该数组

目录
相关文章
|
2月前
|
JavaScript 前端开发
总结TypeScript 的一些知识点:TypeScript Array(数组)(下)
一个数组的元素可以是另外一个数组,这样就构成了多维数组(Multi-dimensional Array)。
|
17天前
|
JavaScript
js 字符串String转对象Object
该代码示例展示了如何将一个以逗号分隔的字符串(`'1.2,2,3,4,5'`)转换为对象数组。通过使用`split(',')`分割字符串并`map(parseFloat)`处理每个元素,将字符串转换成浮点数数组,最终得到一个对象数组,其类型为`object`。
|
1月前
|
存储 设计模式 Python
Python中的类(Class)和对象(Object)
Python中的类(Class)和对象(Object)
30 0
|
1月前
|
存储 JavaScript
JS中Map对象与object的区别
JS中Map对象与object的区别
|
2月前
|
Java 流计算
在Flink实时任务中,POJO(Plain Old Java Object)对象的模式演进可能会引起不兼容的问题
【2月更文挑战第6天】在Flink实时任务中,POJO(Plain Old Java Object)对象的模式演进可能会引起不兼容的问题
22 3
|
2月前
Google Earth Engine(GEE)——reducer中进行array数组的获取和分析
Google Earth Engine(GEE)——reducer中进行array数组的获取和分析
35 0
|
5月前
|
Java
java判断Object对象是否为空demo
java判断Object对象是否为空demo
|
5月前
判断Object对象是否为空
判断Object对象是否为空
|
3月前
|
JavaScript 前端开发 测试技术
Proxy vs Object.defineProperty:哪种对象拦截机制更适合你?
Proxy vs Object.defineProperty:哪种对象拦截机制更适合你?
|
3月前
|
存储 JavaScript 前端开发
【JavaScript】<面向对象Object>函数方法&对象创建&原型对象&作用域解析
【1月更文挑战第17天】【JavaScript】<面向对象Object>函数方法&对象创建&原型对象&作用域解析