如何在我的引擎中允许编辑方法,而无需编辑其Java类(或等效的)

时间:2015-03-23 15:27:47

标签: java android

我目前正在开发名为PlaneUI的UI引擎

为了给你一个基本的想法,它是一个触摸UI系统,整个屏幕由“Planes”组成,可以显示内容,也可以用作按钮。 (下面的附加信息)

  

当用户没有与屏幕交互时,他/她看到连续的内容表面(实际上由平面组成),但是当用户触摸平面时,他/她可以区分单个平面,并且看到它被按下按钮。该系统的目的是消除对笨重的屏幕按钮的需求,并允许非常优雅的设计,同时保持丰富的触摸反馈。屏幕转换也使用这些平面显示。

为了使开发实现这个系统变得可行并使其对其他开发人员开放,我创建了一个名为PlaneView的类,它扩展了SurfaceView,它在内部处理所有的Plane管理。开发人员使用此引擎需要添加的唯一内容是要在每个平面上绘制的内容,以及在按下,释放这些平面时会发生什么。

目前,当Plane正在绘制内容,被按下,释放等时,会调用PlaneView中的方法,例如绘制,按下,释放等。但是,在这种情况下,开发人员需要进入PlaneView类并将代码添加到这些方法的声明中,例如要绘制的内容,以及按下,释放等时要采取的操作。

是否有任何Java编程机制(?)我可以使用,以便开发人员可以在自己的类中定义这些东西?

我对过度使用抽象语言表示歉意。我将对术语或我对Java语言的可能误解提出任何建议(我在Game Maker Studio上使用GML进行编程,最近才开始使用Java)

1 个答案:

答案 0 :(得分:0)

你可以使PlaneView成为一个抽象类,它有抽象方法onDraw,onPress等。使用PlaneView的开发人员必须扩展PlaneView并实现相关方法。确保在PlaneView中小心保密,保护什么以及公共内容。

public abstract class PlaneView {

    protected abstract void onDraw();

    // Similarly for the other methods ...