网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.用Java编程获得本机和服务器IP地.
.在JAVA中连接Sybase数据库.
.Java中文问题详解(高手必读).
.两种最流行的开源CORBA实现.
.EJB设计模式(1).
.论如何成为有高尚职业操守的提问.
.Enterprise JavaBeans导论(3).
.网页软键盘,有效的防止监测键盘的.
.JAVA设计模式系列之Adapter(适配.
.基于MVC模式的Struts框架研究与应.
.初学Java写的第一个多线程程序.
.用NetBeans平台开发J2ME游戏实例.
.IBM 易捷产品免费讲座 (张江).
.用Java实现断点续传(HTTP)(1).
.Java线程总结.
.绘制整洁的UML图 明晰才能被人采.
.Java下的框架编程之cglib的应用.
.在Eclipse 3.1体验J2SE 5.0新特性.
.Sun让软件没有国界.
.实例讲解如何用Struts向MySQL中储.

Java入门:代码的坏味道

发表日期:2008-1-5



  1、Duplicated Code (重复代码) 
假如在一个以上的地点看到相同的程序结构,就应当设法将它们合而为一。 

2、Long Method (过长函数) 
过长的程序不利于理解。每当感觉需要以注释来说明时,便可将此处代码写入一个独立函数中,并以其用途命名。 

3、Large Class (过大类) 
假如一个class中出现过多的instance变量,就应当将几个相关的变量提炼到某个组件内。 

4、Long Parameter List (过长参数列) 
太长的参数列难以理解也轻易造成前后不一致、不易使用。 

5、Divergent Change (发散式变化) 
一个class受到多种变化的影响。针对某一外界变化的所有相应修改,都只应该发生在单一class中,而这个新class内的所有内容都应该反应该外界变化。 

6、Shotgun Surgy (散弹式修改) 
一种变化引发多个classes相应修改。此时应把所有需要修改的代码放进同一个class中。 

7、Feature Envy (依恋情结) 
对象技术的全部要点在于:将数据和加诸其上的操作行为包装在一起。 
将总是一起变化的东西放在一起。 

8、Data Clumps (数据泥团) 
将总是一起出现的数据放进属于它们自己的对象中 

9、Primitive Obsession (基本型别偏执) 

10、Switch Statements (Switch 惊悚现身) 
面向对象程序的一个明显特征就是:少用switch(或case)语句。 
大多数时候,一看到switch语句就应当考虑以多态来代替它。 

11、Parallel Inheritance Hierarchies (平行继续体系) 

12、Lazy Class (冗赘类) 
假如函数或class的唯一用户是 test cases ,就应当将其连同test cases一起删掉。 

13、Speculative Generality (夸夸其谈未来性) 

14、Temporary Field (令人迷惑的暂时值域) 

15、Message Chains (过度耦合的消息链) 

16、Middle Man (中间人) 

17、Inappropriate Intimacy (狎昵关系) 

18、Alternative Classes with Different Interfaces (异曲同工的类) 

19、Incomplete Library Class (不完整的程序类库) 
Library的形式(form)往往不够好,往往不能让我们修改其中的classes使它完成希望完成的工作。 

20、Data Class (单纯的数据类) 

21、Refused Bequest (被拒绝的遗赠) 

22、Comments (过多的注释) 
在感觉需要写注释时,首先尝试重构,用函数名表达注释所要解释的意思。
上一篇:开源技术:hibernate点滴 人气:502
下一篇:用CashFilter实现页面级缓存实践 人气:1095
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐