Hi,
I am looking for the proper solution to the following problem. I am programming an algorithm modeling Lead Acid Batteries with many equations involving more than 25 coefficients which are different according to the technology.
I am looking for a solution which might look like :
- a top abstract class with non abstract methods containing the algorithm
- several classes extending this class to provide the set of constants corresponding to each technology
- moreover I would like the constants to be actually constants
Given the fact that we can't override variables, I am not sure I have found the right
pattern to solve this problem.
My temporary solution is :
- abstract class with protected constructor (I am using a public static getInstance method to instantiate an object of the proper subclass)
- the top level abstract class has a constructor expecting an EnumMap in which all the parameters can be recovered to initialize private final instance variables.
- a class for each technology extending the top abstract class with a private static final EnumMap initialized with a static initializer.
Thanks in advance for your answers.