Skip to content

Design Patterns and software architecture

Niklas Götz edited this page Jul 15, 2024 · 2 revisions

This is intended to be a highly maintainable project with state-of-the-art architecture. We don't throw around classes, we don't repeat ourselves and we think about depenencies. Core APIs should be implemented by interfaces/abstract classes, as can be seen in Flow. All general analysis classes depend on a core storage class, which is the main static element of the project. It is implemented in different volatile ways for the different input formats. The main difference is which data is stored, and which loader is used. The main storage class depends on a main loader, which is implemented in different ways for the different inputs. Future changes should take into account that static and volatile parts of the codebase should be separated as far as possible. For inspiration, please read about SOLID.

Clone this wiki locally