有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

细节。在这个问题上,我用了一个简单的例子。但在现实生活中,只有一个状态变量存在差异的方法存在巨大的逻辑。 实例我有两个类,它们有相同逻辑的方法。这两个类之间的区别在于方法中使用的类内变量

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) 个答案

  1. # 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"