在设计新系统或了解其他人的代码时,有哪些迹象表明设计阶段出现了问题?是否有寻找类图和继承层次结构的线索,甚至是代码本身,只是为设计检修而尖叫,特别是在项目的早期?
Bev*_*van 48
对我来说最重要的事情是" 代码味道 ".
大多数情况下,我对违反"良好做法"的事情很敏感.
像:
除了你从名称中想到的东西之外的其他方法(例如:静默删除零字节文件的FileExists())
一些非常长的方法(程序周围的对象包装的标志)
在同一个枚举成员上重复使用switch/case语句(需要提取的子类的符号)
很多成员变量用于处理,而不是捕获状态(可能表示需要提取方法对象)
一个有很多责任的班级(违反单一可重复性原则)
成员访问的长链(this.that很好,这个.其他很好,但my.very.long.chain.of.member.accesses.for.a.result很脆弱)
类命名不佳
在狭小空间内使用太多设计模式
工作太辛苦(重写框架中已存在的功能,或同一项目中的其他地方)
拼写错误(任何地方)和语法(在评论中),或评论只是误导
Mit*_*eat 18
我会说OO设计不好的头号规则(是的,我曾多次犯过它!)是:
其次是:
phi*_*ant 12
软件设计反模式
面向对象设计反模式
一种气味是具有硬依赖性/对其他对象的引用的对象,这些对象不是其自然对象层次结构或域相关组成的一部分.
示例:假设您有城市模拟.如果Person对象具有NearestPostOffice属性,则可能遇到麻烦.