1

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!

user1275011
  • 1,552
  • 1
  • 16
  • 36
  • Focus on the use cases, and don't worry about buzzwords like "DCI", "State Patterns" or any other other cool terminology. Remember: the *Fundamental design pattern* is "K.I.S.S". IMHO... ;) – paulsm4 Nov 29 '12 at 19:36
  • 2
    @Paulsm4 one of the goals of DCI is to make use case implementations simple so your comment is self contradicting – Rune FS Nov 30 '12 at 06:46
  • I would suggest you to read Lean Development Book by Jim Coplien who is a pioneer for DCI. IMHO this can help. – Narendra Pathai Nov 10 '13 at 15:01

1 Answers1

0

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.

Rodolfo Grave
  • 1,148
  • 12
  • 24