I am wondering where does the fxml controller belong in the Entity-Control-Boundary model?
When designing a JavaFX application with the help of Scene Builder, Scene Builder generates an fxml file which represents the GUI. In addition, a controller is needed to make user interaction possible. An example would be: LoginScreenUI.fxml & LoginScreenUIController.java.
What is known:
- An entity object is an object that represents the system's data.
- A boundary object is an object that interfaces with the system's users.
- A control object is an object that implements the logic required to manage the various elements and their interactions. It serves as a mediator, i.e. the glue between boundary objects and entity objects.
All of the interpretations I found were based on a comparison to the MVC model, here are some:
-
The Entity-Control-Boundary Pattern (ECB) is a variation of the Model-View-Controller Pattern.
Mapping to MVC:
We can map the inner hexagon filled with entities to the Model role in the Model-View-Controller Pattern. Controllers obviously map to Controllers, and boundaries, at least boundaries that interact with users, map to views. -
They are not similar. MVC is for user interaction. Business rules are not bound to users directly and even not I/O devices like the internet itself. The ECB pattern is used for separating business entities from the boundary (mvc framework, ORM's).
-
I see myself agreeing with the explanation that ECB pattern is a kind of an analogous pattern to the MVC pattern when it comes to more Client-Server like architectures. As a consequence, some differences occur when implementing each one.
However, I am not entirely satisfied as I could not find any direct answer to my question and it is still open for personal interpretation rather than having a clear guideline.
To be more concrete, when the user types ID, Password & clicks the Login button. My controller handles that button click.
Two scenarios are possible:
Assuming
- Assuming my controller belongs to the Control category.
I can right then and there check if the user is registered in my database by executing a query. - Assuming my controller belongs to the Boundary category.
I have to find another "middleman" class to authenticate the credentials.
I can't move forward based on assumptions as a wrong one will significantly slow down future development and introduce many mistakes to be painfully corrected.
Any help would be much appreciated.
Thank you.