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() {
if (instance == null) {
String os = System.getProperty("os.name").toLowerCase(); String os = System.getProperty("os.name").toLowerCase();
if (os.contains("win")) { if (os.contains("win")) {
return new Windows(); instance = new Windows();
} }
else if (os.contains("mac")) { else if (os.contains("mac")) {
return new Mac(); instance = new Mac();
} }
else if (os.contains("nix") || os.contains("nux")) { else if (os.contains("nix") || os.contains("nux")) {
return new Linux(); instance = new Linux();
} }
else if (os.contains("freebsd")) { else if (os.contains("freebsd")) {
return new FreeBSD(); instance = new FreeBSD();
}
else {
return null;
} }
} }
return instance;
}
} }