写题目要求的getInstance方法

前面提到的Laptop类将被修改为使用静态工厂方法实现对象工厂。构造函数因此要为私有:

private Laptop (String reference){
 this.reference = reference;
 numLaptops = numLaptops + 1;
}

提供一个公共的getInstance方法,以确保计算机对象仅实例化一次。定义了一个静态哈希图LAPTOPS,以通过其引用来跟踪便携式计算机对象:

提供一个公共的getInstance方法,以确保计算机对象仅实例化一次。定义了一个静态哈希图LAPTOPS,以通过其引用来跟踪便携式计算机对象:


... LAPTOPS = new HashMap<String, Laptop>();

要求完成getInstance的方法:

要求完成getInstance的方法:

public static Laptop getInstance(String reference) {

 // Code to insert here

}

如果这道题就是这样子的话,那代码表述如下。

public static Laptop getInstance(String reference) {
 
 // Code to insert here
    if(LAPTOPS.containskey(reference)){
        return LAPTOPS.get(reference);
    }
    else{
        LAPTOPS.put(reference, new Laptop(reference));
        return LAPTOPS.get(reference);
    }
}

 

大概是比较单纯的用HASHMAP判断是否该对象已经被实例化过了,如果没有被实例化,就新建一个实例对象放入哈希表中。其实我不知道这个哈希表是在类内还是类外,不过就按可以直接调用来算吧。

有前情提要吗?题主。比方说Laptop类之前是怎么定义的,以前Laptop有什么其他的方法或者参数。