Das hier beschriebene Problem ist ein typischer Anwendungsfall des Strategy Entwurfsmusters.
Die Details der Lösung entnehmen Sie dem Quellcode.
Hinweis:
Es wurden zwei Lösungsansätze betrachtet:
- Die klassische dynamische Vorgehensweise
- Eine zweite (statische) Vorgehensweise mit der C++ Template Technik
Program.cpp
DynamicVariant.cpp
StaticVariant.cpp
RenderHtmlListStrategy.cpp
RenderHtmlListStrategy.h
RenderListStrategy.h
RenderMarkdownListStrategy.cpp
RenderMarkdownListStrategy.h
RenderTextProcessor.cpp
RenderTextProcessor.h