续上一篇文章链接:
!(https://www.jianshu.com/p/251d1b796259?v=1673184489236)[重构改善既有代码的设计-代码的坏味道(中)]
我们继续整理代码中的“坏味道”
1.9 Primitive Obsession (基本类型偏执)
大多数编程环境都有两种数据:结构类型允许你将数据组织成有意义的形式,基本类型则是构成结构类型的积木块。
对象的一个极大的价值在于:他们模糊了横亘于基本数据类型和体积较大的类之间的界限,你可以轻松编写出一些与语言内置(基本)类型没有区别的小型类。例如java就以基本类型表示数值,而以类表示字符串和日期。
一般对象技术的新手都不爱在小任务上使用小对象-就像结合数值和币种的money类》 由一个起始值和结束值组成的range类。
你应该多运用Replace Data Value with Object(以对象取代数据值)手法,将原本独立存在的数值抽象成对象,走出传统的编程技术,使用面向对象编程这一高级的世界。
实现建议:
-
如果想要替换的数值是类型码,而不影响行为。 则可以运用Replace Type Code with Class(以类取代类型码)
-
如果有与类型码相关的条件表达式,则可以运用Replace Type Code With SubClass
或者Replace Type Code With State/Strategy。
待续
网友评论