在这种情况下有没有办法完全避免重复代码?

Is there a way to cleanly avoid duplicate code in this instance?

我正在 android 与 Java 合作,我正在实施模型-视图-演示器架构。玩家可以玩两种类型的游戏:

这两款游戏非常相似,但各有各自的 .class 文件和(例如 GameA.class 和 GameB.class)。

在这两种情况下,它们各自的呈现器是相同的,唯一改变的是模型的实例化和声明class。例如:

GameAPresenter.class:

class GameAPresenter{

    private GameA game;
    // other stuff here that happens in both presenters

    GameAPresenter(int par1, int par2){
        this.game = new GameA(par1, par2);
        //other stuff here that happens in both presenters

    }
}

GameBPresenter.class:

class GameBPresenter{

    private GameB game;
    // other stuff here that happens in both presenters

    GameBPresenter(int par1, int par2){
        this.game = new GameB(par1, par2);
        //other stuff here that happens in both presenters

    }
}

有什么方法可以完全避免重复代码,由单行注释模拟? 如果我能让两个模型共享一个演示者,那就更好了。

您将要创建一个通用 Game class,然后 GameAGameB 都可以继承。

同样可以与 GamePresenter 一起使用,创建一个通用的 GamePresenterAGamePresenterB 可以继承的。您也可以在每次创建它的新实例或调用某个方法时给 GamePresenter 一个 Game。这样就可以有一个 GamePresenter 并且它可以用任何 Game 来呈现它。