对于只有一个类变量有差异的两个类,什么是合适的模式?

时间:2018-04-04 15:43:51

标签: java inheritance design-patterns

详情。在这个问题中,我使用了简单的例子。但在现实生活中,方法中存在巨大的逻辑,只有一个状态变量存在差异。 例。我有两个类具有相同逻辑的方法。这两个类之间的差异在类变量中,在方法中使用。

class A {
    private String str = "A";
    void method() {
        System.out.print(str);
    }
}

class B {
    private String str = "B";
    void method() {
        System.out.print(str);
    }
}

我认为使用继承我可以实现结果。

abstract class Abs {
    void method() {
        System.out.print(getStr());
    }
    abstract String getStr();
}

class A extends Abs {
    String getStr() {
        return "A";
    }
}

class B extends Abs {
    String getStr() {
        return "B";
    }
}

这是好的解决方案吗?或者还有其他任何设计模式可能实现我的目标吗?提前谢谢。

1 个答案:

答案 0 :(得分:1)

如果它只是价值的差异,它们应该只是同一类的两个实例。

我只是传递"变量"数据到构造函数并完成它。

class A {
    private String str;

    public A(String str) {
        this.str = str;
    }

    public void method() {
        System.out.print(str);
    }
}

然后使用它

A a = new A("a");
A b = new A("b");
a.method(); // prints "a"
b.method(); // prints "b"