effect java

http://www.blogjava.net/dongbule/archive/2011/08/15/356577.html

1、静态工厂方法的一个好处是,和构造函数不同,静态工厂方法有名字,这样使使用者更清晰。另一个好处是不用每次都创建一个实例,比如boolean.valueof()和单例等。
利于接口编程

2、不要直接调用对象的成员变量,提供方法这样可以有灵活的变化空间,单例的时候也是一样,把单例变量设为private

3、如果不想一个类被实例话如一些util类,最好把构造函数设为私有的,这样不会造成误解

4、重复使用每一个对象,而不是每次使用的时候都去创建例如string。

5、类中不变的东西抽象出来不要每次都去创建。但这个东西也是相对的,自己维护对象池是个很费力的工作而且同时也要考虑到保护性拷贝的东西,在项目中自己掌握。

6、在接口和具体实现类之间加入一个抽象类,可以不用实现所有方法做个隔离
http://blog.csdn.net/scs2000/article/details/1554463
adaptor理解的还不好。接下来看看


7、写equal方法是一定要注意应满足的规则,自反,对称,一致,在比较时也要注意比较顺序。

8、系统尽量做的隔离,外部的交互通过接口来实现,这样利于并行开发和后期维护
尽量隐藏类的内部数据和实现细节, 类在不需要提供给外部用的时候可以做成是包级别的,一旦做成public的就不能随便修改

9、非可变对象设计,String之类的,对类的操作产生新的实例,而不是对原有对象进行修改。但这种方式的实现一般会有性能上的问题如String的+操作,所以一般提供类似Stringbuffer之类的辅助

10、组合优于继承,如果一个类不是为了被继承设计的,或者真的是继承关系的话,父类修改会造成子类功能上的问题。只有在真正需要的时候才使用继承

11、接口优于抽象类,一般接口都和一个 骨架类进行配合使用例如,abstractSet等等接口只用来定义类型

12、优先考虑静态成员类,如果成员类不需要访问外围的资源最好定义为静态成员类。内部类的例子可以看看Hashtable代码。

13、方法的描述要清楚,在进入方法是要进行条件检查,
14、保护性拷贝,对于对象的可变实例,在get和set的时候一定要小心,要不容易不小心被用户修改。

15、方法不易拆分的过细每一个方法代表一个功能就好,如果不能拆分不要特意的去做这些,函数的参数不要过长。

16、谨慎使用方法的重载,因为他是在编译期被决定和重写不同。这样如果当重载方法有一个参数是其它几个的基类的时候会有问题

17、将局部变量作用域最小化,每一个变量在声明的时候都应该有初始值,如果现在不能的话变量在能的时候在声明

18、在循环的时候for优于while,for能控制变量的作用域
善于使用第三方类库

19、如果其它类型能符合要求的话尽量不要使用字符串,如真假用boolean也不要做聚集类型如a_b_c

20、取%运算的时候要判断是否大于integer.maxvalue,大于有可能变为负数。

猜你喜欢

转载自wangpeng198245ok.iteye.com/blog/1143217