From a0c4c5fda64c3af9cb47adcb2ae3a73dc24cf05e Mon Sep 17 00:00:00 2001 From: Laurent Clouet Date: Sun, 21 May 2017 15:21:52 +0200 Subject: [PATCH] Don't recreate OS object everytime --- src/com/sheepit/client/os/OS.java | 33 +++++++++++++++++-------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/src/com/sheepit/client/os/OS.java b/src/com/sheepit/client/os/OS.java index 7041458..083ce65 100644 --- a/src/com/sheepit/client/os/OS.java +++ b/src/com/sheepit/client/os/OS.java @@ -25,6 +25,8 @@ import java.util.Map; import com.sheepit.client.hardware.cpu.CPU; public abstract class OS { + private static OS instance = null; + public abstract String name(); public abstract CPU getCPU(); @@ -59,21 +61,22 @@ public abstract class OS { } public static OS getOS() { - String os = System.getProperty("os.name").toLowerCase(); - if (os.contains("win")) { - return new Windows(); - } - else if (os.contains("mac")) { - return new Mac(); - } - else if (os.contains("nix") || os.contains("nux")) { - return new Linux(); - } - else if (os.contains("freebsd")) { - return new FreeBSD(); - } - else { - return null; + if (instance == null) { + String os = System.getProperty("os.name").toLowerCase(); + if (os.contains("win")) { + instance = new Windows(); + } + else if (os.contains("mac")) { + instance = new Mac(); + } + else if (os.contains("nix") || os.contains("nux")) { + instance = new Linux(); + } + else if (os.contains("freebsd")) { + instance = new FreeBSD(); + } } + + return instance; } }