Templates in Anwendungslogik



  • Würd mal (aufgrund meines aktuellen Projekts) eure Meinung dazu hören:

    Design by policy (oder generatives Programmieren) wie in modern C++Design, und Templates überhaupt: Sind das eigentlich Techniken für die 'niedrige' Systemebene. Also für Container, Smartpointer, Standard-Implementierungen von Pattern etc.. Also für Dinge, die Stroustroup als 'Typklassen' bezeichnet? Oder kann und sollte man das auch auf Funktionalitätsebene verwenden, also da wo die Anwendungslogik des Programms liegt?

    Konkret:
    mein aktuelles Projekt, vereinfacht:

    Es gibt eine Klasse Actor, die ein repräsenentant verschiedener schaltbarer Geräte darstellt. Diese Klassen erhalten Orders vom System und muss überprüfen (aufgrund zeitlicher Bedingungen, Prioritäten, Inhalt der Orders etc.) ob und wann das ganze umgesetzt wird, welche anderen Orders dafür ggf. abzuschalten sind etc.

    Actor und Orders sind im Prinzip immer gleich, da gibts entsprechende Basisklassen, unterscheiden sich aber 1. in der Art, wie die Orders umgesetzt werden und 2. im Content der Orders (Nummern, freier Text, Textbausteine, irgendwie formatierter Text etc.)
    1. ist problemlos klar über polymorphie zu lösen.
    2. ist die Frage: Es gibt unterschiedliche Contents, aber jeder Actor (und jede Order an den bestimmten Actor) kann immer nur eine Art von Content verarbeiten. D.h. ich könnte verschiedene Content-Klassen unabhängig voneinander implementieren, und Actor und Order (zumindest die Ableitungen) davon zu Templates mit dem Content als Template-Parameter.
    Dann hab ich allerdings die Befürchtung, dass sich die Templates zum Teil auf einer ziehmlich hohen Ebene durchs Progamm ziehen. Das führt zu ner Menge compile-zeit-Abhängigkeiten, die man anderweitig vermeiden würde.

    Jo, hoffe ich konnte erklären, worum es mir geht und hätte gern Eure Meinungen 🙂


Anmelden zum Antworten