What's the difference between MVC (Model View Controller) and BCE (Boundary Control Entity), I know that these two pattern are similar, but there's a difference, what is that difference?
BCE was published by Ivar Jacobson (Ericsson Co.) in 80's with focus of separating responsibilities of elements in Object Oriented Systems. MVC was published by Trygve Reenskaug (XEROX Co.) in 70's with focus of implementing selectable user interfaces.
Here is a discussion of ECB by Adam Bien, which includes the difference between MVC and ECB. Adam says that ECB is a "glorified MVC," and ECB is used more often in business logic whereas MVC is used more often in the user interface.
BCE is how you create decoupled components that follow the open/close principle, dependency inversion and interface segregation. It is what you want to design the core of your application.
BCE consists of a combination of the following elements: Boundaries to other components, logic controllers and business entities.
Each boundary which consists two interfaces:
- An input interface, responsible for exposing only the methods of the business logic that are needed to be known by the other component (interface segregation)
- An output interface, responsible for not coupling the business logic to a specific component's implementation, rather make it so that the logic defines the contract and the other component adapts to it (dependency inversion + observer)
Note: You should strive to make your boundaries general and abstract (ie. do not leak concrete details in the interface). Ideally you should be able to replace the external component with a different one without breaking the interface or the core business logic code.
Each controller contains the logic for a use-case. This is where the application specific logic is.
Entities represent business objects, such as an invoice, a client, a report and other domain objects. They are essentially data-structures but contain code which is not specific to a particular use-case. Eg: invoice.addItem().
The controller will receive instructions from the input boundary coordinate the entities to update the application state, produce some result and send it over the output boundary.
I don't know MVC, so I leave this as half answered
The MVC and BCE Try this paper: https://www.academia.edu/39113245/Synthesis_of_MOF_MDA_PIM_MVC_and_BCE_notions_and_patterns
© 2022 - 2024 — McMap. All rights reserved.