I need to call function to recalculate argument from different place of program {different classes}. I need to recalculate with different coefficient which can be changed in running time. Simple example: new_value = old_value * coefficient.
At the moment I have class which hold those coefficient and has methods which are doing that recalculation. Disadvantage: I need to pass that instance of class to each place where I want to used it.
This is my singleton:
public class Converter {
private double lbU_2_U;
private static Converter instance = new Converter();
public Converter() {
lbU_2_U = 1;
}
public static Converter getInstance() {
return instance;
}
public void updateVelocityCoeficient(double lb_2_p) {
lbU_2_U = lb_2_p;
}
public double velToP(double lbU) {
return lbU_2_U * lbU;
}
public double velToLB(double u) {
return u / lbU_2_U;
}
}
so, advantage now will be that in anywhere in program I can write
newVelocity = Converter.getInstance().velToP(velocity)
Go for forward, I would do something like this:
newVelocity = Converter.velToP(velocity)
so I am thinking about change my Singleton to this:
public class Converter {
private double lbU_2_U;
private static Converter instance = new Converter();
public Converter() {
lbU_2_U = 1;
}
public static Converter getInstance() {
return instance;
}
public static void updateVelocityCoeficient(double lb_2_p) {
instance.lbU_2_U = lb_2_p;
}
public static double velToP(double lbU) {
return instance.lbU_2_U * lbU;
}
public static double velToLB(double u) {
return u / instance.lbU_2_U;
}
}
What do you thing? I am not sure if this is effective, if I can used this in multipleThread app, and if this is correct way of using Singleton.
thank you