【发布时间】:2012-10-07 15:18:16
【问题描述】:
我目前正在编写一个 Android 游戏引擎库。基类(得到扩展)包含两个 WSLog 对象(Android Log 类方法的包装器)。一个叫做gameEngineLog(应该只在游戏引擎项目中可见),另一个叫做gameLog(应该在游戏引擎项目和实际游戏项目中可见)。
在基类中,您可以使用 getter 方法获取两个日志。
我已经通读了Controlling Access to Members of a Class 以了解哪些修饰符应该在getGameEngineLog() 前面以使其仅在游戏引擎项目中可见,但没有任何修饰符(公共、受保护、默认或私人)适合我的需要。
如何使gameEngineLog 对象仅在整个游戏引擎项目中可见,而在实际游戏项目中不可见?
注意:游戏引擎项目中的所有其他组件(类)都包含对基类的引用(有些位于不同的包中)。我想要的只是这些类具有对gameEngineLog 对象的引用。欢迎任何方法。
这是一个视觉表示:
提前致谢。
【问题讨论】:
-
您确定
protected修饰符不适合您的需要吗?由于您的问题只需要使用protected修饰符。我认为您应该再读一次。 -
protected 修饰符仍然会让游戏项目中的基类(扩展游戏引擎项目中的基类)继承 getGameEngineLog()。
-
@LukeTaylor.. 我想我错过了你的问题中的一些东西.. 让我再检查一下..
-
这是一个好兆头,表明你的基类有太多的职责,应该至少分成两个不同的类。
-
因为它作为两种类的超类,应该被隔离:来自游戏引擎的类和来自游戏本身的类。