编程技巧
文章平均质量分 63
cpszgy
这个作者很懒,什么都没留下…
展开
-
模块化,封装
这几天在读别人写的代码,一个注释没有,也没有开发文档。这个太伤了。模块化不清晰。哎,方法的参数传递有问题,封装不好。结果就是我必须自己一行一行去读懂理清才能加进去我的模块。 回想这些情况的时候突然理解了封装的重要性。如果自己写代码的时候,封装的不好,别人用你的接口的时候可能需要你的内部结构。这样的一个代码别人修改,使用都会产生苦难。 所以以后自己写方法的时候要...2011-08-19 17:55:02 · 158 阅读 · 0 评论 -
耦合,参数传递
耦合的3个标准:规模:模块的连接数。越少越好。可见性:连接的显著程度。越明显越好。灵活性:模块之间的连接是否容易改变。其实对于灵活性的理解会和参数传递中传递对象,还是对象中的成员有关联。按照灵活性来说传递的该是对象中的成员。当然也不能一味的为了灵活性而只传对象中的成员。更多确定是传对象还是成员还得根据子程序的抽象层次决定。这其实信息隐藏的一个方面:有些信息隐藏在子程...2011-08-25 17:30:44 · 877 阅读 · 0 评论 -
在程序中使用具名常量
今天写好了一个程序,涉及到了许多setProperty(String key,Object value)的调用、还有涉及getProperty(String key)。在初写代码的时候Key的值是用简单的id来表示。写到后面需要改变了。好吧后来就把所有涉及set,get方法都改过来了。结果有一个query(String query)里面是个涉及这个Key的查询语句。结果就是程序...2011-09-06 21:43:24 · 277 阅读 · 0 评论 -
内部类的使用
一直很少使用内部类。今天发现内部类使用起来确实挺方便。内部类主要是为了在外部类里面使用一个外部类无法容易继承的接口。比如你有个A类。现在想用到一个I接口的一个特性。目前又不好让A去继承I。那只好新建一个内部类去实现I。这样A就能使用I的特性了。如果用匿名内部类,实现起来代码确实显得很漂亮。以后要多关注这种使用方式。...原创 2011-12-22 13:23:19 · 87 阅读 · 0 评论 -
关于URL URI
URL url = Steel.class.getClass().getResource("/steel.arff");FileReader fdata = new FileReader(new File(url.toURI()));不要这样用,因为实际上,资源从文件系统的角度看,已经不存在了(在jar包中),它只能是个资源,只有这样想,你的开发环境和运行环境才能保持一致,要这...原创 2012-01-12 14:38:43 · 99 阅读 · 0 评论 -
对象的逸出
不要在构造器中将this对象发布出去[code="java"]public class Escape { int i; public Escape() { // TODO Auto-generated constructor stub new Thread (){ public void run() { print(); }; ...原创 2013-03-05 11:20:39 · 200 阅读 · 0 评论 -
getResourceAsStream
Class类中有个getResourceAsStream()方法。ClassLoader类中也有getResourceAsStream()。Class类是委托给ClassLoader。但是对于传进去的参数会做处理。如果开头是以“/”。则去掉。否则 获得这个Class所在的包。再加上传进去的参数。所以XX.class.getResourceAsStream("/conf/ss...2012-03-16 10:58:38 · 122 阅读 · 0 评论 -
java中int long等基本数据类型的转换
今天突然想到这个问题。看到了int等基本数据类型之间的转换。其实就是短位-》长位 按短位的最高位进行补位。长位-》短位 按短位的位数进行截位。还有几个小点:java中都是带符号位的。那些Integer , Long中的byteValue就是强制转换到byte,也就是截位。...2012-09-10 16:13:53 · 163 阅读 · 0 评论