Ich bin MVP-Architektur implementieren, Code funktioniert gut, ich wollte Ihre Vorschläge, wenn ich dort Verbesserungen vorgenommen werden kann oder in Bereichen, in denen ich nicht das Muster richtig befolge.Verbesserungen bei der Implementierung von MVP in Android
Es ist eine einfache Anwendung mit RecyclerViews, um Spiele in einem Fragment aufzulisten.
FGames - Fragment, das die Liste der Spiele zeigt
public class FGames extends Fragment implements GamesView {
@BindView(R.id.rv_games)
RecyclerView rvGames;
private GamesAdapter gamesAdapter;
private GamesPresenterImpl presenter;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.games_layout, container, false);
ButterKnife.bind(this, view);
presenter = new GamesPresenterImpl(this);
return view;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
presenter.initUi();
}
@Override
public void initRecyclerView(List<GameEntity> gameEntities) {
gamesAdapter = new GamesAdapter(getActivity(), gameEntities);
rvGames.setAdapter(gamesAdapter);
rvGames.setLayoutManager(new LinearLayoutManager(getActivity()));
}
}
Schnittstelle - GamesView
public interface GamesView {
/**
* Initialise the recycler view to list Games data
* @param gameEntities
*/
void initRecyclerView(List<GameEntity> gameEntities);
}
GamesPresenterImpl - Moderator Implementierung
public class GamesPresenterImpl implements GamesPresenter {
GamesView gamesView;
public GamesPresenterImpl(GamesView gamesView) {
this.gamesView = gamesView;
}
@Override
public void initUi() {
gamesView.initRecyclerView(getGamesData());
}
public List<GameEntity> getGamesData() {
List<GameEntity> gameEntities = new ArrayList<>();
int counter = 0;
for(int i = 0; i<10; i++){
GameEntity gameEntity = new GameEntity();
counter ++;
gameEntity.setName("Test name " + counter);
gameEntity.setJackpot(100000055);
gameEntities.add(gameEntity);
}
return gameEntities;
}
}
Schnittstelle - GamesPresenter
Vielen Dank im Voraus R
Code-Reviews gehen auf codereview.stackexchange.com –
war bewegen werde ich nie, dass man sich bewusst. Vielen Dank. Warum eine Down-Abstimmung? – BRDroid
initUi() ist Teil der UI ist nicht in der Presenter-Klasse. Es sollte in der Aktivitätsklasse sein. –