How to completely separate Model from View in MVC? Or How the Model Updates the View? — oracle-tech

    Forum Stats

  • 3,702,018 Users
  • 2,239,547 Discussions
  • 7,835,716 Comments

Discussions

How to completely separate Model from View in MVC? Or How the Model Updates the View?

GadoGado Posts: 616 Blue Ribbon
edited May 2017 in Java Desktop Applications

Hello Experts,

I'm Building a Swing Application but i'm having a problem trying to implement MVC,

I searched a lot about this but all explanations or examples i found has to be missing something.

Based on my understanding in an MVC environment the View and the Model have to be completely decoupled ... meaning the we shouldn't import any classes from the Model into the View or vice versa (Correct?)

And i did this already but in some situations i find my self in a position that i must import a class from the model into the View.

For example ... The app i'm building is a POS application.

So in the View i have a table ... this table displays the items been sold.

Now when user choose an item he calls a method in the Controller which in turn calls a method in the model to query the database for that item gets all the information and then add it to a List<Product>.

The view then calls another method in the Controller to get that List and update the JTable with the new list (to show the items on the View JTable).

But here is my problem the List ... to show the item's info on the JTable a List is not sufficient instead i need a List<Product> to be able to get each product column value.

And there you go now i must import Product which is POJO i created in the model that holds the product attributes.

I hope i explained it well ... i wish i could support this question with my codes but i'm pretty sure it'll confuse you more than it'll help   ... I'm working on it.

Note: I know how to reach the Model From the View (Using Controller methods) ... But what i really can't understand is how the Model updates the view.

Thank you for your time

Gado

Answers

This discussion has been closed.