よく定数クラスというものを見かける。 大体はXxxConstantsという名前で、public static finalなフィールドをたくさん持つクラス。 あるいは、定数クラス自身をinterfaceとして定義しておいて、 値を利用するクラスで、implementsするという手法も見かける。 初めて見た時には、便利な手法だと思ったけど、 その後、ひどい定数クラスを目にすることが少なくなかった。 定数クラスは、疎結合の考え方と全く合わないと僕は思う。 具体的に、悪い例を見ながら話していく。 public class XxxConstants { public static final String EOL = "\r\n"; public static final String ENCODING = "UTF-8"; public static final int HOGE_X = 480;