Ich verwende den WMD Markdown-Editor in einem Projekt für eine große Anzahl von Feldern, die einer großen Anzahl von Eigenschaften in einer großen Anzahl von Entitätsklassen entsprechen. Einige Klassen können mehrere Eigenschaften haben, für die das Markdown erforderlich ist.
Ich speichere das Markdown selbst, da dies die spätere Bearbeitung der Felder erleichtert. Allerdings muss ich die Eigenschaften für die spätere Anzeige in HTML umwandeln. Die Frage ist: Gibt es ein Muster, das ich verwenden kann, um das Schreiben von Markdown-Konvertierungscode in allen meinen Entitätsklassen zu vermeiden?
Ich habe eine Utility-Klasse mit einer Methode erstellt, die einen Markdown-String akzeptiert und den HTML-Code zurückgibt. Ich verwende markdownj und das funktioniert gut.
Das Problem ist, dass ich für jede Eigenschaft jeder Klasse, die Markdown speichert, möglicherweise eine andere Methode benötige, die in HTML konvertiert:
public class Course{
private String description;
.
.
.
public String getDescription(){
return description;
}
public String getDescriptionAsHTML(){
return MarkdownUtil.convert(getDescription());
}
.
.
.
}
Das Problem dabei ist, dass, wenn die Klasse Course 2 weitere Eigenschaften Tuition und Prerequisites hat, die beide Konverter benötigen, ich dann getTuitionAsHTML() und getPrerequisiteAsHTML() schreiben muss.
Ich finde das ein bisschen hässlich und hätte gerne eine sauberere Lösung. Die Klassen, die dies erfordern, sind nicht Teil einer einzigen Vererbungshierarchie.
Die andere Option, die ich in Betracht ziehe, ist, dies im Controller und nicht im Modell zu tun. Was sind Ihre Gedanken zu diesem Thema?
Danke.
[EDIT]: Neue Gedanken (Danke Jasper). Da das Projekt Struts2 verwendet (Ich habe nicht gesagt, dies vor) Ich könnte eine Ansicht Komponente sagen, dass die Markdown für mich konvertieren wird erstellen. Dann verwende ich das, wo immer ich brauche, um den Wert als HTML anzuzeigen.