1

I'm working on an ejb project and I need to define a set of constants that I can use in the whole of my project so I create an interface that hold the set of my constants my question is there a better way in to define constants in web project ?

this an exemple of my constant interface :

public interface ejbConstant {
    final String  CONST23= "AB23";
    final String  CONST24= "AB24";
    // ..........
}

Thank you for your suggestion

e2rabi
  • 4,728
  • 9
  • 42
  • 69

1 Answers1

2

Sonar has quite good explanation of this with examples

According to Joshua Bloch, author of "Effective Java":

The constant interface pattern is a poor use of interfaces.

That a class uses some constants internally is an implementation detail. Implementing a constant interface causes this implementation detail to leak into the class's exported API. It is of no consequence to the users of a class that the class implements a constant interface. In fact, it may even confuse them. Worse, it represents a commitment: if in a future release the class is modified so that it no longer needs to use the constants, it still must implement the interface to ensure binary compatibility. If a nonfinal class implements a constant interface, all of its subclasses will have their namespaces polluted by the constants in the interface.

rkosegi
  • 14,165
  • 5
  • 50
  • 83