重构——30以类取代类型码(Replace Type Code with Class)

简介: 以类取代类型码(Replace Type Code with Class):类之中有一个数值类型码,但它并不影响类的行为;以一个新的类替换该数值类型码

以类取代类型码(Replace Type Code with Class)

类之中有一个数值类型码,但它并不影响类的行为;以一个新的类替换该数值类型码

一、动机

让编译器可以进行类型检查,减少bug

二、做法

1、为类型码建立一个类

2、修改源类实现,并让它使用上述新建的类

3、编译,测试

4、对于源类中每一个使用类型码的函数,相应建立一个函数,让新函数使用新建的类

5、逐一修改源类用户,让它们使用新接口

6、每修改一个用户,编译并测试

7、删除使用类型码的新接口,并删除保存旧类型码的静态变量

8、编译,测试

目录
相关文章
|
7月前
4. 解决uni-app开发过程中view、image等标签出现诸如“出现错误:类型“{ class: string; }”的参数不能赋给类型“.......”
4. 解决uni-app开发过程中view、image等标签出现诸如“出现错误:类型“{ class: string; }”的参数不能赋给类型“.......”
616 0
|
8月前
|
前端开发 JavaScript 测试技术
前端Tips#2 - 将 arguments 转换成Array的最佳实践
前端Tips#2 - 将 arguments 转换成Array的最佳实践
|
9月前
|
SQL JavaScript
js开发:请解释什么是ES6的模板字符串(template string),并给出一个示例。
ES6的模板字符串以反引号包围,支持变量和表达式插入以及多行书写。例如,插入变量值`Hello, ${name}!`,计算表达式`${num1 + num2}`,以及创建多行字符串。模板字符串保留原始空格和缩进,简化了字符串拼接,提高了代码可读性。
79 6
|
Dart 索引
[Flutter]足够入门的Dart语言系列之变量的类型:bool、String、num、List、Set和Map
变量的类型指的是变量的特性或特征,比如表示数字类型、文本类型、集合类型等,表示的是一类数据。 Dart提供以下类型:int, double、String、List、Set、Map、null...
743 0
[Flutter]足够入门的Dart语言系列之变量的类型:bool、String、num、List、Set和Map
重构——29以数据类取代记录(Replace Record with Data Class)
以数据类取代记录(Replace Record with Data Class):你需要面对传统编程环境中的记录结构;为该记录创建一个“哑”数据对象
1572 0
|
语音技术 网络架构 Windows
CF1560 E. Polycarp and String Transformation(思维 枚举)
CF1560 E. Polycarp and String Transformation(思维 枚举)
86 0
jira项目笔记26-TS object 类型 和 {[key:string]: unknown} 定义类型的区别
jira项目笔记26-TS object 类型 和 {[key:string]: unknown} 定义类型的区别
206 0
重构——31以子类取代类型码(Replace Type Code with SubClass)
以子类取代类型码(Replace Type Code with SubClass):你有一个不可变的类型码,它会影响类的行为;以子类取代这个类型码
1605 0
重构——32以State/Strategy取代类型码(Replace Type Code with State/Strategy)
以State/Strategy取代类型码(Replace Type Code with State/Strategy):你有一个类型码,它会影响到类的行为,但是你无法通过继承手法消除它;以状态对象取代类型码
1546 0