zoukankan      html  css  js  c++  java
  • 代码的坏味道【3】


    返回总目录


    九、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...

  • 相关阅读:
    改造我们的学习:有钱不会花,抱着金库抓瞎
    (转)我奋斗了18年才和你坐在一起喝咖啡
    初学者要知道的十件事
    [转]C#图像处理 (各种旋转、改变大小、柔化、锐化、雾化、底片、浮雕、黑白、滤镜效果)
    C#调用系统的复制、移动、删除文件对话框
    SQLite数据类型
    jquery禁用dropdownlist中某一项
    C# winform无标题窗体随意移动
    注册.NET Framework
    jQuery同步/异步调用后台方法
  • 原文地址:https://www.cnblogs.com/liuyoung/p/7822426.html
Copyright © 2011-2022 走看看