This week's book giveaway is in the Clojure forum.
We're giving away four copies of Clojure in Action and have Amit Rathore and Francis Avila on-line!
See this thread for details.
Win a copy of Clojure in Action this week in the Clojure forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Multiple sets of constants

 
Gael Robin
Greenhorn
Posts: 5
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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.
 
Jeanne Boyarsky
author & internet detective
Marshal
Posts: 33697
316
Eclipse IDE Java VI Editor
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Gael,
Welcome to JavaRanch!

Why not provide getter methods that reference the true constants? Then you can get the benefits of OO without losing the real constants you were looking for.
 
I agree. Here's the link: http://aspose.com/file-tools
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic