Skip to content

Programming Principles

Maximilian Burr edited this page May 26, 2023 · 27 revisions

Programming Principles

SOLID

Single Responsibility Principle

Nach dem Single Responsibility Principle soll eine Klasse nicht zu viele Verantwortlichkeiten aufweisen.

In unserem Programmentwurf wurde das Single Responsibility Principle in Commit 741bc5e5bccf22525ae1ef67f4d1b8da208c490b in der Klasse Configuration umgesetzt.

Jede Klasse der Configuration Architektur hat eine oder höchstens 2 Funktionen.

Klasse Configuration

Das Klassenkonstrukt um Configuration ist in mehrere Subklassen aufgebaut, die alle einzelne Aufgaben übernehmen.

Die Klasse Configuration hat die Aufgabe die Konfiguration bereitzustellen, sie implementiert die Schnittstelle zu anderen Programmteilen an über die Plugin Schnittstelle des Kerns. Dies macht sie indem sie das Interface "IConfiguration" implementiert.

Die Aufgabenteilung durch das Single Responsibility Prinzip wird dadurch erreicht, dass Funktionalitäten wie das Speichern der Configuration auf dem Dateisystem und das Laden der jeweiligen Konfiguration in einzelne Klassen ausgelagert wurden. Ebenso wurde die Datenhaltung der Konfiguration in einem Baum in einer extra Klassenstruktur ausgelagert.

class Configuration{}
classDiagram

Configuration --> "1" ConfigMap
Configuration --> "1" ConfigurationSerializer
Configuration --> "1" ConfigurationDeserializer
Configuration ..> IConfiguration : implements
Configuration ..> IPlugin : implements
ConfigMap --> "0..n" ConfigKey
ConfigMap --|> ConfigTree
ConfigKey --|> ConfigTree

class ConfigTree{
    +member
}

class Configuration{  
}

class IConfiguration{
    <<interface>>
}

class ConfigMap{
    +member
}

class ConfigTree{
    +member
}
Loading

Open-Closed Principle

Nach dem Open-Closed Prinziple

function test()

Liskov Substitution Principle

Clone this wiki locally