• 找课程
  • 找学校
  • 找资料
  • 成才首页
  • 高考
  • 外语
  • 考研
  • 公务员
  • 计算机/IT
  • 职业培训
  • 基础教育
  • 司法考试
  • 出国留学
  • 管理学院
  • 文体艺术
  • 课程
  • 学校
  • 资料
  • 社区
当前位置:成才网 > 新闻中心 > 计算机/IT > > 正文
写Java程序最容易犯的21种错误实例分析
2007-05-21 14:18:41  来源:考试大      标签:艺考辅导 
  1.Duplicated Code 

 代码重复几乎是最常见的异味了。他也是Refactoring的主要目标之一。代码重复往往来自于copy-and-paste的编程风格。与他相对应OAOO是一个好系统的重要标志。 

 2.Long method 

 它是传统结构化的“遗毒”。一个方法应当具有自我独立的意图,不要把几个意图放在一起。 

 3.Large Class 

 大类就是你把太多的责任交给了一个类。这里的规则是One Class One Responsibility. 

 4.Divergent Change 

 一个类里面的内容变化率不同。某些状态一个小时变一次,某些则几个月一年才变一次;某些状态因为这方面的原因发生变化,而另一些则因为其他方面的原因变一次。面向对象的抽象就是把相对不变的和相对变化相隔离。把问题变化的一方面和另一方面相隔离。这使得这些相对不变的可以重用。问题变化的每个方面都可以单独重用。这种相异变化的共存使得重用非常困难。 

 5.Shotgun Surgery 

 这正好和上面相反。对系统一个地方的改变涉及到其他许多地方的相关改变。这些变化率和变化内容相似的状态和行为通常应当放在同一个类中。 

 6.Feature Envy 

 对象的目的就是封装状态以及与这些状态紧密相关的行为。如果一个类的方法频繁用get 方法存取其他类的状态进行计算,那么你要考虑把行为移到涉及状态数目最多的那个类。 

 7.Data Clumps 

 某些数据通常像孩子一样成群玩耍:一起出现在很多类的成员变量中,一起出现在许多方法的参数中,这些数据或许应该自己独立形成对象。 

 8.Primitive Obsession 

 面向对象的新手通常习惯使用几个原始类型的数据来表示一个概念。譬如对于范围,他们会使用两个数字。对于Money,他们会用一个浮点数来表示。因为你没有使用对象来表达问题中存在的概念,这使得代码变的难以理解,解决问题的难度大大增加。好的习惯是扩充语言所能提供原始类型,用小对象来表示范围、金额、转化率、邮政编码等等。 

 9.Switch Statement 

 基于常量的开关语句是OO 的大敌,你应当把他变为子类、state或strategy. 

 10. Parallel Inheritance Hierarchies 

 并行的继承层次是shotgun surgery的特殊情况。因为当你改变一个层次中的某一个类时,你必须同时改变另外一个层次的并行子类。 

 11. Lazy Class 

 一个干活不多的类。类的维护需要额外的开销,如果一个类承担了太少的责任,应当消除它。 

  12. Speculative Generality 

 一个类实现了从未用到的功能和通用性。通常这样的类或方法唯一的用户是testcase.不要犹豫,删除它。 

 13. Temporary Field 

 一个对象的属性可能只在某些情况下才有意义。这样的代码将难以理解。专门建立一个对象来持有这样的孤儿属性,把只和他相关的行为移到该类。最常见的是一个特定的算法需要某些只有该算法才有用的变量。 

 14. Message Chain 

 消息链发生于当一个客户向一个对象要求另一个对象,然后客户又向这另一对象要求另一个对象,再向这另一个对象要求另一个对象,如此如此。这时,你需要隐藏分派。 

 15. Middle Man 

 对象的基本特性之一就是封装,而你经常会通过分派去实现封装。但是这一步不能走得太远,如果你发现一个类接口的一大半方法都在做分派,你可能需要移去这个中间人。 

 16. Inappropriate Intimacy 

  某些类相互之间太亲密,它们花费了太多的时间去砖研别人的私有部分。对人类而言,我们也许不应该太假正经,但我们应当让自己的类严格遵守禁欲主义。 

 17. Alternative Classes with Different Interfaces 

 做相同事情的方法有不同的函数signature,一致把它们往类层次上移,直至协议一致。 

 18. Incomplete Library Class 

 要建立一个好的类库非常困难。我们大量的程序工作都基于类库实现。然而,如此广泛而又相异的目标对库构建者提出了苛刻的要求。库构建者也不是万能的。有时候我们会发现库类无法实现我们需要的功能。而直接对库类的修改有非常困难。这时候就需要用各种手段进行Refactoring. 

 19. Data Class 

 对象包括状态和行为。如果一个类只有状态没有行为,那么肯定有什么地方出问题了。 

 20. Refused Bequest 

 超类传下来很多行为和状态,而子类只是用了其中的很小一部分。这通常意味着你的类层次有问题。 

 21. Comments 

 经常觉得要写很多注释表示你的代码难以理解。如果这种感觉太多,表示你需要Refactoring. 
上一篇:Java技术与XML常见问题之JAX-RPC
下一篇:SCJP认证考试全接触
   (已有0人评论)
相关新闻
-  桓文教育CCNA、CCNP开班情况火爆,学员好评如潮
-  谷歌与流氓软件为伍不是出路
-  微软陈永正肯定北京奥运会要用Vista系统
-  资深IT教育专家提醒您:慎选IT培训机构
-  网络招聘需提防虚假信息
-  IT人才需求量继续猛增
学习资料免费下载
  • -  [日语] 将軍と大名   立即下载
  • -  [自考] 全国2008年1月高等教育自学考试法律文书写作   立即下载
  • -  [自考] 08自考“政治经济学(财)”知识点(二)   立即下载
  • -  [西班牙语] 西班牙语常用动词的基本用法(二)    立即下载
  • -  [西班牙语] 与美女搭讪西班牙语12句    立即下载
  • -  [日语] 标准日本语句型7   立即下载
  • -  [日语] 学习日语中的客套话    立即下载
  • -  [市场营销] 解析“招商”的三重境界    立即下载
  • -  [市场营销] 成为优秀业务员必经的三个发展阶段    立即下载
  • -  [市场营销] 营销练得是细功夫    立即下载
  • 进入下载更多更全的资料>>
  • 有更好的资料但是不想共享?可以开店售卖你的资料,把它变成真正的财富!
学习吧社区 • 论坛 • 博客 • 圈子
-  [司法考试] 2008年国家司法考试【新法】必看 东界
-  [公务员考试] 经验分享:我的国家公务员考试全程经验 ftisland
-  [司法考试] 2008年司法考试:构建你整体的复习思路 钢笔
-  [公务员考试] 公务员考试经验谈:我和我的梦擦肩而过 和田
-  [司法考试] 2008年司法考试备考:心态决定成败 钢笔
-  [公务员考试] 考试经验交流:公务员考试复习实战三招 东界
  • 司法考试商经考点之用人单位...

  • 陈若琳摘金"童言无忌" "什么好吃吃什么"...

  • 公务员考试心得:在明媚的春光里舞蹈...

  • 奥运会最牛女裁判:17岁周丽娜走红网络...

  • “少年发明家”高考得266分 被高校破格录取...

成才网温馨提示

  • 由于学校开课信息变动较快,未能及时变更信息。为了保证您的正常学习,请您在报名前拨打页面中的免费咨询电话了解详情后进行报名。
  • 更多问题请咨询客服中心:
  • 4006504560-789000(手机固话均可拨打)
  • 服务时间:周一至周日 早9:00-18:00
  • >>立即免费注册教誉通,免费发布学校信息及课程信息,让更多学员找到您!

最新课程

  • •
  • 2009届艺术类高复班招生 09月08日
  • •
  • 2010届、2011届三校生高考辅导班 09月01日
  • •
  • 2009届三校生高复班招生简章 09月01日
  • •
  • 高级营销员资格培训 08月15日
  • •
  • 营销员资格培训 08月15日
  • •
  • 助理营销师资格培训 08月15日
  • •
  • 营销师资格培训 08月15日
  • •
  • 清华大学《现代企业资本战略》董... 09月22日

更多优惠

  • •
  • 摄影师职业培训  学费1200  成才价1104  省 96元
  • •
  • 美德创意广告英语培训  学费1650  成才价1550  省 100元
  • •
  • 信息化营销师  学费1996  成才价786  省 1210元
  • •
  • 中科院软件需求分析和管理短训班  学费3600  成才价3240  省 360元
  • •
  • 中科院高级软件测试课程短训班  学费3800  成才价0  省 3800元
  • •
  • 软件项目管理实践  学费3300  成才价0  省 3300元
  • •
  • 游戏学院游戏美术设计  学费16800  成才价16800  省 0元
  • •
  • 游戏学院游戏程序开发  学费16800  成才价16800  省 0元
  • •
  • 北大青鸟网络工程师培训  学费4675  成才价4488  省 187元
  • •
  • 英华新概念英语二册课程  学费1290  成才价1290  省 0元
  • •
  • 英华新概念英语(三册)课程  学费1100  成才价1056  省 44元
  • •
  • VS.NET企业级开发培训课程  学费5580  成才价0  省 5580元

推荐教育机构

最受关注的学校

  • •  北京第二外国语学院旅游发展研究院
  • •  上海复旦托业教育培训中心
  • •  中建院培训中心
  • •  北京成功时代培训中心
  • •  北京邦杰外语学校(成教中心)
  • •  北京易中创业科技有限公司
  • •  Englishing 英格利教育
  • •  清华继续教育学院
  • •  北大青鸟丰台学知堂
  • •  杭州里仁教育咨询有限公司