architectureuse-casepresentation-modeldci

Architecture for driving complex Use Cases


I'm about to design a software to be implemented by several developers.

The software has many complex use cases involving several steps and commands from the UI. I want to have a clear separation from the UI and the Bussiness logic, so, the different states of each use case should not be driven/controlled by the UI but in a lower layer, making the UI essentially 'dumb'.

I've considered a mixture between DCI and State patterns to solve this.

I would like to know your experience with similar applications and, if possible, receive your advice.

Thank you!


Solution

  • As simple as the concept is, introducing DCI (or any other new concept for that matter) to a big group of developers can be costly. If it's a long term project it might make sense.

    On the other hand, if what you want to achieve is

    a clear separation from the UI and the Bussiness logic

    then Model-View-Controller (MVC) is a more established pattern, as well as Model-View-ViewModel (MVVM) for JavaScript and Windows Presentation Foundation applications.