I am going to write a configuration tool for my Ubuntu based system. Then I would like to write interfaces (text, graphical interface and web interface). But this is the most complex project that I wanted to write, and I'm not sure about the general architecture that I should use.
In the current state, I have functions and classes for changing the system configuration. But these functions are likely to grow and change. @Abki gave me advice on how to write an interface for interfaces. I am going to make base classes for this interface, but I do not know how to connect it with the backend, and then with the interfaces. I should probably use design patterns like fasade, wrapper or something else.
It looks like (without interface_to_backend layer):

I do not need the user interface and functions to change the system configuration. But I donβt know how to write the middle layer, so it would be easy to connect it with the rest and expand the functionality in the future.
I need general ideas, design patterns, tips on how to implement this in Python.
source share