Update! – POC: Négyzet rajzolása, mozgatása – Android

azzal kezdtem, hogy valóban MVP szerinti fejlesztést hajtunk végre. A kommentekből és az azok nyomán kialakult vitából látható, hogy nem teljesen sikerült megfelelnem az említett minta által támasztott követelményeknek. Néhány javítást eszközöltem tehát!

A legnagyobb hiba (finomabban szólva “eltérés” az MVP mintától) az volt, hogy a Model-ként szolgáló Cube. java tartalmazott abszolút View-specifikus elemeket. Konkrétan itt hoztam létre a négyzetet, és itt változtattam a koordinátáit. A következő gond az volt, hogy a Presenter-ben (MainThread. java) történt meg a felületre való kirajzolás. Holott ez is teljesen a View által végzendő feladat lenne!

A fentiek miatt a következő változásokat hajtottam végre:

Model (Cube. java)

- Eltüntettem a rectangle és a paint változókat, ezzel együtt a miattuk szükséges importokat is. Ezentúl csak a négyzet koordinátáit (rectLeftrectRight. stb. ) tároljuk itt. Here are some innovative ways you can repurpose old books www.college-homework-help.org/ using these creative lifestyle and home d cor hacks. – Ugyancsak okafogyottá vált a getLeft, getRight, getTop és getBottom függvény is, hiszen helyettük használhatók a fent említett koordináta változók.  Presenter (MainThread. java) változásai:

- A run() metódusban nem rajzolunk közvetlenül a canvasra, hanem meghívjuk a View erre szolgáló metódusát (MainGamePanel. onDraw) és paraméterként átadjuk a négyzetünk Model-ben tárolt koordinátáit. – A handleTouchEvent() metódusban is a Cube. java-ban bevezetett koordinátaváltozókat (rectLeft és társai) használjuk az érintés helyének megadására. View (MainGamePanel. java) változásai:

- A négyzet konkrét megjelenítésére új private változókat (rectanglepaint) hoztunk létre, melyek először a konstruktorban kapnak értéket. – Az onDraw metódusban adjuk meg a Presenter-től kapott paraméterekből a négyzet friss koordinátáit, majd kirajzoljuk a képernyőre.


.

Kategória: Általános | A közvetlen link.