什么相当于封装私有功能的封装私有接口?

迈克·里兰德

我正在尝试封装服务包的所有内部功能。我的大多数类和方法都是包私有的。我有一些内部接口,我不想在包外部公开。我可以使接口本身为包私有,但是所有方法仍然是公共的(接口方法的默认范围)。

在此包中,从内部实现中消除公共方法签名的方法有哪些?

我正在使用接口,以便可以轻松地使用spring切换出实现。

需要考虑的事项:使用源代码分析的开发工具会将接口方法报告为公共API方法。例如,UML生成器将生成一个误导性的UML图,该图错误地将其显示为公共方法。

斯图洛

正如@Bart已经指出的那样,一种可能的解决方案是使用抽象类而不是接口。与该概念有关的可能问题是单继承性问题。

另一种解决方案是将“专用”接口分离在一个不同的程序包中,不需要与您的服务包一起发布,因为这种方法可能会破坏接口的语义,特别是如果一个逻辑接口将具有“专用”和“公开”部分。

我想到的最后一项工作是利用一些模式,例如,“双重调度”或“访客”可能会有用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Pyspark相当于熊猫的所有功能

来自分类Dev

相当于C#嵌套私有类的C ++

来自分类Dev

Scala私有功能

来自分类Dev

Apps脚本私有功能

来自分类Dev

封装Javascript和定义私有变量/方法的首选方法?

来自分类Dev

设置私有变量以在封装的JavaScript函数中重用

来自分类Dev

为什么在此封装示例中为私有变量分配了两次?

来自分类Dev

有什么方法可以在Clojure中具有真正的私有功能?

来自分类Dev

使用公共功能调用私有功能

来自分类Dev

Symfony 2重定向出私有功能

来自分类Dev

JavaScript中的基本公共/私有功能结构

来自分类Dev

覆盖不同模块中的私有功能

来自分类Dev

访问包含的php文件中的私有功能

来自分类Dev

Symfony 2重定向出私有功能

来自分类Dev

JavaScript中的基本公共/私有功能结构

来自分类Dev

私有功能,可减轻操作员的负担

来自分类Dev

有相当于Google Sketchup的功能吗?

来自分类Dev

PostgreSQL 是否具有相当于 Oracle ArrayBind 的功能?

来自分类Dev

与私有接口比较

来自分类Dev

调用方法并直接读取/设置参数的私有字段是否会破坏封装?

来自分类Dev

相当于没有jQuery的$ .load

来自分类Dev

有相当于水晶的撬动吗?

来自分类Dev

是否有相当于setenv的重击

来自分类Dev

现有相当于HAVING

来自分类Dev

是否有相当于 gdbserver 的 lldb?

来自分类Dev

类内的私有接口

来自分类Dev

类内的私有接口

来自分类Dev

如何在Laravel中将数据从私有功能传递到公共功能?

来自分类Dev

私有功能使用的计算机资源是否比公共功能更多或更少?