Language agnostic 我怎样才能隐藏像Update()这样的关键方法,但却揭示必要的细节?

Language agnostic 我怎样才能隐藏像Update()这样的关键方法,但却揭示必要的细节?,language-agnostic,Language Agnostic,我正在开发我的游戏框架,为了论证,我有一个TimeService,负责计算帧/增量时间和应用程序运行的总时间。TimeService派生自具有Update()方法的服务。显示TimeService的数据(如DeltaTime和TotalTime)但隐藏Update()方法以确保使用DeltaTime或TotalTime时不会意外调用Update()并取消所有计时的最佳方式是什么?ServiceManager每帧调用一次Update()方法,这就是它被公开的原因 想法?我会使用接口。基本上,一个用

我正在开发我的游戏框架,为了论证,我有一个TimeService,负责计算帧/增量时间和应用程序运行的总时间。TimeService派生自具有Update()方法的服务。显示TimeService的数据(如DeltaTime和TotalTime)但隐藏Update()方法以确保使用DeltaTime或TotalTime时不会意外调用Update()并取消所有计时的最佳方式是什么?ServiceManager每帧调用一次Update()方法,这就是它被公开的原因


想法?

我会使用接口。基本上,一个用于需要知道时间的事物,另一个用于需要控制时间的事物。

我会使用接口。基本上,你有一个用于需要知道时间的事情,另一个用于需要控制时间的事情。

一个干净的方法是使用。定义一个只声明要公开的方法的类(DeltaTime、TotalTime等)。实现它以将这些调用中继到与其关联的(隐藏的)TimeService对象。

一种干净的方法是使用。定义一个只声明要公开的方法的类(DeltaTime、TotalTime等)。实现它以将这些调用中继到与其关联的(隐藏的)TimeService对象。

我同意@stonemetal在接口上的观点。例如,在C#中,您可以显式地实现接口,以便接口方法只能通过接口引用可见

另一个选项是使用访问修饰符降低更新方法的可见性(使其成为内部、朋友等)


这在很大程度上取决于您的编程语言;很难给出语言不可知的答案。

我同意@stonemetal在界面上的观点。例如,在C#中,您可以显式地实现接口,以便接口方法只能通过接口引用可见

另一个选项是使用访问修饰符降低更新方法的可见性(使其成为内部、朋友等)

这在很大程度上取决于您的编程语言;很难给出语言不可知论的答案