Effective Java 学习笔记(2)
有时,我们在写一个构造函数时,经常因为它包含众多的参数而苦恼,这时可以考虑用Builder模式来创建对象。
如,我们要设计一个营养成份的类,包含能量,蛋白质,脂肪,钙,铁,锌,维生素A, 维生素B1 ... 等,但在构造的时候,不一定每次都需要这些参数,如钙,铁,锌和维生素等是可选的,为了适应多种可能的搭配,比较原始的办法就是采用telescoping constructor模式,例子如下。
public class Nutrition
{
private int calories;
private int protein;
private int fat;
private int ca;
private int fe;
private int Va;
private int Vb;
...
public Nutrition(int cal, int pro){...}
public Nutrition(int cal, int pro, int fat){...}
public Nutrition(int cal, int pro, int fat, int ca){...}
public Nutrition(int cal, int pro, int fat, int ca, int fe){...}
public Nutrition(int cal, int pro, int fat, int ca, int fe, int ){...}
public Nutrition(int cal, int pro, int fat, int ca, int fe, int Va){...}
.......
}
这种方法的缺点很明显,一个函数的参数一旦超过3个,用户就很容易把顺序搞混,而更杯具的是这种情况编译器无法识别,非常不易查错。
第二种方法是JavaBean模式。
public class Nutrition
{
 
相关文档:
package com.huawei.globe;
import java.util.zip.*;
import java.io.*;
public class Compress {
public Compress() {
}
// 压缩目录下的文件
public void compress(String zipFileName, String inputFile) throws Exception {
compress(zipFileName, new File(inputFile));
......
public class Test{
public static String addBigNum(String str1,String str2){
//找出两字符串的长短,方便后边引用;
String longer = str1.length() > str2.length()? str1 : str2;
String shorter = str1.length( ......
来源:http://bbs.hackline.net/thread-3620-1-1.html
隐藏具体实现是Java语言的主要特点之一。正是因为这个原因,所以Java语言的移植性就特别好。如有个程序员编写了一个实现随机数的程序库,那么其他
程序开发人员只需要知道这个程序库需要传入那些参数,就可以使用这个类。现在无论是网上还是平时的工作中,有很多现成 ......
MD5算法是一种非常优秀的加密算法。
MD5加密算法特点:灵活性、不可恢复性。
介绍MD5加密算法基本情况MD5的全称是Message-Digest Algorithm 5,在90年代初由MIT的计算机科学实验室和RSA Data Security Inc发明,经MD2、MD3和MD4发展而来。
Message-Digest泛指字节串(Message)的Has ......