java公共接口_在Java中定义公共库接口

Java中定义库的公共接口有哪些选项.

例如,我经常发现事情是公开的,因为库中的另一个包需要它们(虽然仍然有一个共同的基础包,例如com.stackoverflow.mylib.),所以它们不能具有包访问级别,并且通常人们不会我想要大量的软件包(似乎人们使用Spring时仍然坚持使用单独的控制器/服务/模型/ impl / etc.软件包,导致单个“特性”被强制跨越许多软件包,当说某个服务可能是一个完全内部的实现细节,不适合外部使用…).

所以理想的目标是让第一方提供的Jar我明确表示不会使用这些东西,理想情况是根本没有它们可用(不存在于API jar中),因此不可能让他们使用和编译那些内部对象/方法.

更理想的是对象只能从某种工厂获得(例如提供的Spring Bean),这是一种防止从他们的代码或自定义bean直接实例化的方法(这可能会留下一些未来,尚未存在的属性在升级后未初始化) .

我目前了解的两种正式方式是:

>在我工作的一些项目中,有一个api包(例如com.stackoverflow.mylib.api),规则只是该包的内容可以由外部用户直接访问.

>在我参与的其他一些项目中,有一些自定义属性,例如: @PublicSDK标记公众使用的对象和方法(我认为一些额外的东西,以确保只有标记为这样的东西在公共分布的javadoc和api jar中).

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值