samnap11 / Card-Game-Tubes-2-OOP

0 stars 0 forks source link

Differentiate View and Model #1

Open teresachn opened 4 years ago

teresachn commented 4 years ago

Kode Card saat ini menghandle View dari Card itu sendiri, seperti menentukan warna dan menggambar bentuk Card.

https://github.com/samnap11/Card-Game-Tubes-2-OOP/blob/6109470916d3f0fe834b3c711f37ca3e28266856/src/main/java/com/avatarduel/model/Card.java#L42-L56

https://github.com/samnap11/Card-Game-Tubes-2-OOP/blob/6109470916d3f0fe834b3c711f37ca3e28266856/src/main/java/com/avatarduel/model/Card.java#L82-L152

Sangat tidak direkomendasikan untuk menggabungkan View dan Model, karena perubahan pada Card akan berpengaruh ke kelas turunannya. Sebaiknya anda membuat kelas baru khusus untuk menghandle view dari Card, seperti CardView. Untuk menghandle kasus seperti menampilkan attack dan defense hanya untuk kelas Character, anda bisa membuat kelas CharacterView yang menambahkan komponen baru pada CardView.

yonasadiel commented 4 years ago

In addition, mixing model and view may violate Single Responsibility Principle. Instead, you can create CardView that extends BorderPane.

aqilabdulaziz1123 commented 4 years ago

baik terimakasih