代码坏味道
牵一发而动全身,每次遇到某种变化,都必须在不同的类中做出小修改
就是有几行代码到处都在用
参数太多,组成对象传进去吧。
多个类中出现相同的字段,或多个方法上出现相同的形参
函数太复杂写太长,分段提取为多个方法。显得简单易懂。
单个类做太多的事,分工不分明,重复代码多。
描述:一个类被锚定了多个变化,当这些变化中的任意一个发生时,就必须对类进行修改。 解释:一个类最好只因一种变化而被修改
某个函数为了实现其功能,经常从另一个类中获取大量数据。比起自身所在的类来说,更加依赖于另一个类。
数据和行为不在一处,修改不可控。
Coding的时候总喜欢用基本类型,而不喜欢用对象。
如果要为它添加一个新的case子句,就必须找到所有switch语句并修改它们。
其实是 Shotgun Surgery(散弹式修改) 的特殊情况. 在这种情况下, 每当你为某个类增加一个子类, 必须也为另一个类相应增加一个子类
如果一个类没什么价值,应该让他消失。
未来的功能什么的未来再说。 如果函数或类的唯一用户是测试用例
如果类中有一个复杂算法,需要好几个变量,往往就可能导致坏味道令人迷惑的临时字段(Temporary Field)出现。由于实现者不希望传递一长串参数,所以他把这些参数都放进字段。但是这些字段只在使用该算法时才有效,其他情况下只会让人迷惑。这时可以利用 Extract Class (提炼类)把这些变量和其相关函数提炼到一个独立的类中。
a.b.c.final() 隔壁朋友的表姐的妈妈的闺蜜的小孩。 a.final() 隔壁家的小孩。
上面a做的事情太多就把它干掉。 隔壁家这个中间人事情太多,实际的类被架空。
哈哈这名字也是够了, 不就是双向管连尽量改用单向么。 比如,老师有很多学生这时候不是在老师类里面加List stu,而是只在学生类加Teacher t. 如果都加就是不正当关系了。
如题,要么把接口干掉要么把类干掉。
封装好的类库中功能不能满足实际需求。
搞个子类继承他,修改子类方法。搞个工具栏,封装扩展的方法。只有属性没有方法,被其他地方过于细碎的操作。 应该把涉及到的方法移动到自己类里面。
父类的东西,子类不想继承。继承下来没啥用。 那么
把父类的东西放到其他子类里面,精简父类。用委托找个他的子类或他自己来处理。指的是代码太差不得不写很多注释来说明。
为了生活理解一下: JS、JAVA程序调试; 网站、小程序、APP项目; qq:1582508336 魔道工程师