指代码表面的腐化现象,对需求易变性的估计不足、功能重复出现、片段式植入等代码腐化现象。
不符合以下四个基本原则中任何一个,即可能存在代码坏味道:
违反以下设计原则-SOLID原则,思考是否存在坏味道:
一个对象或者模块应该负责一个职责,如:一个对象应该就只包含单一的职责,并且该职责就完整封装在一个类中。
一个软件实体应该对拓展开放,对修改关闭。在设计一个模块的时候,应当使这个模块可以在不被修改的前提下被拓展,即在不修改这个模块源代码的前提下改变这个模块的行为。
派生的子类应该是可替换成基类,也就是说任何基类出现的地方,子类一定可以出现
类不应该被迫依赖他们不使用的方法,也就是一个接口应该尽可能单一,保持精简的行为
高层模块不应该依赖底层模块,他们都应该依赖抽象,抽象不应该依赖细节,细节应该依赖抽象。
(1)滥用面向对象
(2)膨胀剂
(3)可有可无
(4)难以修改和耦合