← Back to team overview

diodon-team team mailing list archive

Diodon Software Architecture

 

I've created a diagram for the Diodon Software architecture. Although
I'm not completely satisfied with the diagram I hope it helps to better
understand where to put what code.

Short explanation:

Controller:
The Controller encapsulates the application logic (e.g. making sure that
the history is not longer than configured, ...). It uses the manager to
help to interact with other components/technologies.
Note that managers, views and models should never interact with each
other but always communicate with the Controller through signals.

Models:
Models are here for storing the application state (e.g. what clipboard
item is active, or what is the size of the history, ...).
Note that a model should never start an action to change the application
state.

Views:
Views should only provide methods to change the user interface (e.g. add
clipboard item, remove clipboard item, ...), but shouldn't change it
themselves.

Managers:
Managers contain additional code to interact with one particular
component/technology (e.g. Clipboard, Keybinding, ...). A manager is to
understand as some attached code to the Controller (as to not have a
Controller class with thousand of lines ;)).

I hope this explanation helps. Let me know if you have any question.

Oliver

Attachment: diodon_architecture.png
Description: PNG image