通过类层次结构实现公共类行为的模式

时间:2014-08-13 01:20:29

标签: java static

我有一个Java类层次结构,层次结构的子树实现相同的静态数据和方法。我不能继承,因为它们都是静态的,但当我将相同的代码从一个类切换到另一个类时,它会闻到我的味道。我正在考虑的一件事是将公共位放在一个类中,然后为每个子类提供该类的静态实例。任何人都想过更好地解决这种情况(不使用泛型)?

2 个答案:

答案 0 :(得分:0)

这听起来是正确的。只需要一类不可变的静态并直接在需要它的类中引用它们(调用是常量或类似的东西。你不应该创建一个实例来引用类上的静态对象 - 它们& #39;重新静止所以他们应该只存在"。

     public class MyConstants{
            public static final String MyConstantValue1 = "Billy";
            public static final String MyConstantValue2 = "Sally";
        }

     public class SomeClass{
        public void something(){
            System.out.println(MyConstants.MyConstantValue1);    
        } 
    }

    public class SomeSubClass extends SomeClass{
        @override
        public void something(){
            System.out.println(MyConstants.MyConstantValue2);    
        }
    }

答案 1 :(得分:0)

我的解决方案 我创建了一个单独的类,它实现了让我困扰的功能。 我给层次结构中的每个类都提供了自己的静态实例。是一种享受。