Don't recreate OS object everytime

This commit is contained in:
Laurent Clouet
2017-05-21 15:21:52 +02:00
parent 3bd86c56e3
commit a0c4c5fda6

View File

@@ -25,6 +25,8 @@ import java.util.Map;
import com.sheepit.client.hardware.cpu.CPU; import com.sheepit.client.hardware.cpu.CPU;
public abstract class OS { public abstract class OS {
private static OS instance = null;
public abstract String name(); public abstract String name();
public abstract CPU getCPU(); public abstract CPU getCPU();
@@ -59,21 +61,22 @@ public abstract class OS {
} }
public static OS getOS() { public static OS getOS() {
String os = System.getProperty("os.name").toLowerCase(); if (instance == null) {
if (os.contains("win")) { String os = System.getProperty("os.name").toLowerCase();
return new Windows(); if (os.contains("win")) {
} instance = new Windows();
else if (os.contains("mac")) { }
return new Mac(); else if (os.contains("mac")) {
} instance = new Mac();
else if (os.contains("nix") || os.contains("nux")) { }
return new Linux(); else if (os.contains("nix") || os.contains("nux")) {
} instance = new Linux();
else if (os.contains("freebsd")) { }
return new FreeBSD(); else if (os.contains("freebsd")) {
} instance = new FreeBSD();
else { }
return null;
} }
return instance;
} }
} }