← 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:

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

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

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.


Attachment: diodon_architecture.png
Description: PNG image