如果库有一些副作用,这可以吗?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如果库有一些副作用,这可以吗?相关的知识,希望对你有一定的参考价值。
我正在开发一些Kotlin库,我有以下概念问题:
- 第一个库基于spring的类路径扫描程序,旨在用作弹簧扩展,因此它将spring-core作为依赖项。这个可以吗?我的库的潜在用户如何处理不同的弹簧版本?
- 第二个库首先基于它,它旨在用于p2p网络。它与其他对等体同步,并提供共享状态,库用户可以使用特殊的预定义spring服务轻松检索。图书馆有这样的副作用吗?也许有一些模式来实现/分发这些库?
如果这还不行,请指导我如何做到这一点。提前致谢。
答案
这是一个普遍的问题,具体的例子将有助于理解这是“好”还是“不好”。
但总的来说:
- 如果您的库依赖于特定版本的其他库,那就没关系。大多数图书馆都这样做。问题是你依赖的这个图书馆有多么沉重和突兀。不幸的是,对于你来说,Spring库是众所周知的。对于您图书馆的最终用户,如果发生冲突,他只需要选择是否要为您的图书馆更新他的Spring版本
- 具有一些分布状态不一定是副作用。例如,EhCache是一个分布式缓存库。基本模式应尽可能的SOLID。当我开发caching for Vert.x WebClient library时,我使它依赖于接口而不是可靠的实现,所以如果有人决定他不想使用你的库(例如Spring组件),他可以提供替代解决方案。
同样,这些是基本准则,没有看到您的代码。如果您打算开源它,请随意分享特定位以从StackOverflow社区获得更具体的见解。
以上是关于如果库有一些副作用,这可以吗?的主要内容,如果未能解决你的问题,请参考以下文章