Есть ли способ полностью избежать дублирования кода в этом случае? - PullRequest
1 голос
/ 15 января 2020

Я работаю над android с Java и реализую архитектуру Model-View-Presenter. Есть два типа игр, в которые игрок может играть:

  • Игра A
  • Игра B

Обе игры действительно похожи, но у каждой из них свои. документы класса и (например, GameA.class и GameB.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

    }
}

Можно ли каким-либо образом избежать дублирования кода, смоделированного однострочные комментарии? Бонус, если я смогу сделать так, чтобы обе модели использовали одного докладчика.

1 Ответ

2 голосов
/ 15 января 2020

Вы захотите создать обобщенный c Game класс, от которого потом могут наследовать GameA и GameB.

То же самое может go с GamePresenter, создать универсальный c тот, от которого GamePresenterA и GamePresenterB могут наследовать. Также вы можете указывать GamePresenter a Game каждый раз, когда создаете его новый экземпляр или вызываете определенный метод. Таким образом, может быть один GamePresenter, и для его представления может понадобиться Game.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...