博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
代码的坏味道【3】
阅读量:5130 次
发布时间:2019-06-13

本文共 846 字,大约阅读时间需要 2 分钟。



九、Primitive Obsession(基本类型偏执)

这主要表现在过多的使用基本类型。

1、总是被放在一起的基本类型字段,可以提炼一个类出来。

2、参数列中有基本类型数据,这个和第八个“坏味道”一样,可以将参数提炼成对象。

3、如果你正在从数组中挑选数据,那么将数组替换成对象。

十、Switch Statements(switch惊悚现身)

面向对象的一个最明显特征就是:少用switch...case...语句。从本质上讲,switch语句的问题在于重复。你常会发现,同样的switch语句散布于不同地点。

1、如果switch语句是根据类型码进行选择,那就考虑多态。

2、如果只是在单一函数中有些选择事例,可以用明确的函数取代参数。

十一、Parallel Inheritance Hierarchies(平行继承体系)

这种坏味道有两种情况:

1、为某个类增加子类时,必须为另一个类增加子类

2、某个继承体系类名前缀和另一个继承体系类名前缀相同

消除这种重复性的策略:一个继承体系中的实例引用另一个继承体系中的实例,然后迁移成员

十二、Lazy Class(冗赘类)

其实就是某个类没有做那么多工作或者无事可做。

1、如果父类和子类之间无太大差别,将它们合为一体。

2、某个类没有做太多事。将这个类的所有特性搬移到另一个类中,然后移除原类。

十三、Speculative Generality(夸夸其谈未来性)

1、企图以各式各样的钩子和特殊情况来处理一些非必要的事情。

  • 某个抽象类没有太大作用,将父子类合并
  • 不必要的委托,将这个类的所有特性搬移到另一个类中,然后移除原类。
  • 函数的某些参数未用上,移除参数
  • 函数名称带有多余的抽象意味,重命名函数名

2、函数或类的唯一用户是测试用例。

这种情况下请将这样的函数或类连同测试用例一并删除。

 

 To Be Continued...

转载于:https://www.cnblogs.com/liuyoung/p/7822426.html

你可能感兴趣的文章
SQL更新某列包含XX的所有值
查看>>
网易味央第二座猪场落户江西 面积超过3300亩
查看>>
面试时被问到的问题
查看>>
spring 事务管理
查看>>
VS2008 去掉msvcr90的依赖
查看>>
当前记录已被另一个用户锁定
查看>>
Bootstrap
查看>>
Node.js 连接 MySQL
查看>>
ACM-ICPC 2018 world final A题 Catch the Plane
查看>>
那些年,那些书
查看>>
面向对象六大基本原则的理解
查看>>
注解小结
查看>>
java代码编译与C/C++代码编译的区别
查看>>
Bitmap 算法
查看>>
转载 C#文件中GetCommandLineArgs()
查看>>
list control控件的一些操作
查看>>
精读《useEffect 完全指南》
查看>>
SNF快速开发平台MVC-EasyQuery-拖拽生成SQL脚本
查看>>
DrawerLayout实现双向侧滑
查看>>
MySQL入门很简单-触发器
查看>>