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!
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.