gpt4 book ai didi

java - 在 Java 库的两种不同实现之间轻松切换?

转载 作者:行者123 更新时间:2023-11-29 05:49:39 28 4
gpt4 key购买 nike

我目前正在从事一个使用第三方库来管理硬件的项目。

我希望创建一个呈现相同界面的替代库,但不是控制实际硬件而是呈现一个漂亮的假 GUI。最好这可以通过更换 jar 来完成。

问题是所有第三方代码都在命名空间 edu.edu.wpi.first.wpilibj 中,当然我的库的命名空间会非常不同。

有没有什么方法可以轻松地在 java 中提供相同接口(interface)的两个库之间切换实现?

最佳答案

是的,有设计模式可以做到这一点。

你可以看看策略模式。

更好的是你可以查看Dependency injection .

您可以使用 Google Guice作为容器并根据您的配置,在运行时,您的实现可以在使用 N 个库之间切换。

归根结底,您需要围绕一些抽象来包装这些库。

这是一个例子:

interface ISomeOperation{
void process();
}

class ThatUsesTheWPILIBJ implements ISomeOperation{

void process(){
//use library here
}

}

class ThatUsesYourMock implements ISomeOperation{
void process(){
//use your mock here
}
}


public YourUIClass{

private ISomeOperation _operatingClass;


public YourUIClass(ISomeOperation operatingClass){

_operatingClass = operatingClass;
}

public void render(){
_operatingClass.process();
}
}

现在您需要做的就是接线。查看 google guice 配置。

关于java - 在 Java 库的两种不同实现之间轻松切换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14419438/

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