3 回答

TA贡献2080条经验 获得超4个赞
该功能很容易实现,无需使用库。
恕我直言,那就是要走的路。您的其他选择是:
围绕库构建功能:您说在您的情况下这是不可能的。
在您自己的源代码控制系统中创建库的一个分支。这意味着您必须使该存储库与库维护者保持同步,这意味着永久性负担。你必须检查图书馆的许可证关于分叉的内容。
将相关部分复制到您的代码库中并在那里进行修改。然后,您将无法从未来的增强或错误修复中获利,但仍然必须维护由其他人创建和架构的代码,并且不完全符合您的要求。你必须检查图书馆的许可证关于将部分复制到外国代码库中的内容。
他们都有自己的缺点。
总而言之:在 25 年的专业软件开发中,我看到了外部库的成功使用和完全的失败。有时,我们在评估现有库(然后发现没有任何匹配项)上投入的时间比我们自己实施项目特定解决方案所需的时间更多。
您可以不用的每个库都使配置管理和部署变得更加容易。

TA贡献1793条经验 获得超6个赞
装饰器模式允许您向现有对象添加新功能。
如果你使用的 java 库有这样的类:
public class LibraryClass implement ILibraryInterface {
public void someMethod() {
...
}
}
然后你可以创建Decorator类:
public class LibraryClassDecorator implement ILibraryInterface {
private LibraryClass libObj;
public LibraryClassDecorator(LibraryClass libObj) {
this.libObj = libObj;
}
public void someMethod() {
libObj.someMethod();
// here you can do whatever you want.
// Add some additional logic
// transform result value if there is some
}
}
注意:您必须实现相同的接口才能遵循Liskov 替换原则
添加回答
举报