weixin_44915534 2021-02-14 21:10 采纳率: 50%
浏览 191
已结题

写题目要求的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

}
  • 写回答

3条回答 默认 最新

  • ProfSnail 2021-02-14 21:36
    关注

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

    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判断是否该对象已经被实例化过了,如果没有被实例化,就新建一个实例对象放入哈希表中。其实我不知道这个哈希表是在类内还是类外,不过就按可以直接调用来算吧。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 如何实现从tello无人机上获取实时传输的视频流,然后将获取的视频通过yolov5进行检测
  • ¥15 WPF使用Canvas绘制矢量图问题
  • ¥15 用三极管设计一个单管共射放大电路
  • ¥15 孟德尔随机化r语言运行问题
  • ¥15 pyinstaller编译的时候出现No module named 'imp'
  • ¥15 nirs_kit中打码怎么看(打码文件是csv格式)
  • ¥15 怎么把多于硬盘空间放到根目录下
  • ¥15 Matlab问题解答有两个问题
  • ¥15 LCD12864中文显示
  • ¥15 在使用CH341SER.EXE时不小心把所有驱动文件删除了怎么解决