android继承 - 通过单个对象实例化多个不同的子类?

时间:2014-11-26 17:50:44

标签: java android inheritance

我正在为android绘制程序。我想创建通用的“工具”,它们将MotionEvent作为参数发送,并使用它们来执行绘制或擦除页面上的元素等任务。我想编程它,以便一个工具超类可以更改为任何子类工具。我在SO上做了一些浏览,并在此处找到了类似的问题:Multiple subclasses, how to instance any of them?

我不确定它是否完全适用,用户检查的答案对我来说有点混乱。如果有人能详细说明这个问题的答案,或者对我的目标有更多了解,那么我将非常感激。

编辑:我想要完成的是采取类似下面的代码:

    @Override
    public boolean onTouchEvent(MotionEvent event) {

        float touchX = event.getX();
        float touchY = event.getY();

        switch (event.getAction()) {
            case MotionEvent.ACTION_DOWN:
                currentTool.Touch(event);
                //drawPath.moveTo(touchX, touchY);
                break;
            case MotionEvent.ACTION_MOVE:
                currentTool.Move(event); //drawPath.lineTo(touchX, touchY);
                break;
            case MotionEvent.ACTION_UP:
                currentTool.Untouch(event);
                //drawCanvas.drawPath(drawPath, drawPaint);
                //drawPath.reset();
                break;
            default:
                return false;
        }
        invalidate();
        return true;
    }

用户在使用程序时可以更改currentTool。每当用户触摸屏幕时,发布的代码将运行,但是使用的工具可以根据用户选择的工具而改变(因此铅笔工具将绘制线条,橡皮擦工具将擦除线条等)。我想这样做是为了在我的程序中有更好的OO设计,并且以后可以更容易地添加或删除工具。

0 个答案:

没有答案