gpt4 book ai didi

java - 如何允许第三方扩展我的 java 库中的类

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:44:28 24 4
gpt4 key购买 nike

我在 java 中有一个定义了一些行为的父类

public class ParentClass {
public ParentClass() {
//Do some instantiation
}

public void doWork() {
//Do some behavior defined by the parent class
}
}

现在我的项目中有一些其他类使用它。假设它在 main 中使用

public class Main {

public static void main(String [] args) {
ParentClass parent = new ParentClass();
parent.doWork();
}

}

现在假设我的项目设置为供其他开发人员使用的库。我希望他们能够扩展 ParentClass 并根据自己的喜好覆盖 doWork() 方法。如果开发人员无法更改 Main 类,我如何确保 ChildClass 在 main() 中实例化而不是在 ParentClass 中实例化?

子类示例

public class ChildClass extends ParentClass {
public ChildClass() {
super();
//Do some more instantiation
}

@Override
public void doWork() {
super.doWork();
//Do some more behavior in child class
}
}

最佳答案

这取决于你想要实现什么,如果你的库打算被另一个第 3 方使用,那么你的主要方法很可能是无关紧要的,因为你的 JAR 包将被捆绑在他自己的 JAR 中,这只允许一个主类;他的。

这种方法可能需要您有一些触发器来启动您的类(引擎?),这同样取决于您希望客户如何使用您的 API。

此外,您可以检查模板方法设计模式,因为它可能对您的情况有用,本质上,它允许您确定算法的粗线并定义您希望客户重新定义/扩展的部分。

关于java - 如何允许第三方扩展我的 java 库中的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30266940/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com