Noa*_*ein 5 oop android design-patterns interface kotlin
我想写一个Android库,后者又使用另一个Androd库.
假设我想写libHigh哪个使用另一个libLow
libLow中有一个接口:
interface LowLevelInterface{
fun methodA()
}
Run Code Online (Sandbox Code Playgroud)
我在我的更高级库libHigh中实现了这个:
open class OpenClassImpl : LowLevelInterface {
override fun methodA(){//..}
}
Run Code Online (Sandbox Code Playgroud)
它是一个'开放'类,因为稍后在app层中我希望延伸OpenClassImpl.
但我不想让界面'LowLevelInterface'可见,以便以后的应用程序级别使用.
如何在libLow中隐藏上层应用程序级别的界面?
这取决于您现有的代码是否有效,或者需要花费多少精力,但您可以有一个实现该接口的属性,而不是直接执行它:
open class OpenClassImpl {
// or protected/private
internal val lowLevelImpl: LowLevelInterface = {
// can access privates of OpenClassImpl here
}
}
Run Code Online (Sandbox Code Playgroud)
并更改相关调用以通过它。