Language agnostic 我怎样才能隐藏像Update()这样的关键方法,但却揭示必要的细节?
我正在开发我的游戏框架,为了论证,我有一个TimeService,负责计算帧/增量时间和应用程序运行的总时间。TimeService派生自具有Update()方法的服务。显示TimeService的数据(如DeltaTime和TotalTime)但隐藏Update()方法以确保使用DeltaTime或TotalTime时不会意外调用Update()并取消所有计时的最佳方式是什么?ServiceManager每帧调用一次Update()方法,这就是它被公开的原因Language agnostic 我怎样才能隐藏像Update()这样的关键方法,但却揭示必要的细节?,language-agnostic,Language Agnostic,我正在开发我的游戏框架,为了论证,我有一个TimeService,负责计算帧/增量时间和应用程序运行的总时间。TimeService派生自具有Update()方法的服务。显示TimeService的数据(如DeltaTime和TotalTime)但隐藏Update()方法以确保使用DeltaTime或TotalTime时不会意外调用Update()并取消所有计时的最佳方式是什么?ServiceManager每帧调用一次Update()方法,这就是它被公开的原因 想法?我会使用接口。基本上,一个用
想法?我会使用接口。基本上,一个用于需要知道时间的事物,另一个用于需要控制时间的事物。我会使用接口。基本上,你有一个用于需要知道时间的事情,另一个用于需要控制时间的事情。一个干净的方法是使用。定义一个只声明要公开的方法的类(DeltaTime、TotalTime等)。实现它以将这些调用中继到与其关联的(隐藏的)TimeService对象。一种干净的方法是使用。定义一个只声明要公开的方法的类(DeltaTime、TotalTime等)。实现它以将这些调用中继到与其关联的(隐藏的)TimeService对象。我同意@stonemetal在接口上的观点。例如,在C#中,您可以显式地实现接口,以便接口方法只能通过接口引用可见 另一个选项是使用访问修饰符降低更新方法的可见性(使其成为内部、朋友等)
这在很大程度上取决于您的编程语言;很难给出语言不可知的答案。我同意@stonemetal在界面上的观点。例如,在C#中,您可以显式地实现接口,以便接口方法只能通过接口引用可见 另一个选项是使用访问修饰符降低更新方法的可见性(使其成为内部、朋友等) 这在很大程度上取决于您的编程语言;很难给出语言不可知论的答案