我正在使用一个项目的大量对应于大量的属性中有大量实体类领域的大规模杀伤性武器降价编辑器。某些类可能有多个需要减价的属性。设计模式应用转换为多个属性的多个类
我正在存储降价本身,因为这样以后可以更容易地编辑字段。但是,我需要将这些属性转换为HTML以供稍后显示。问题是:是否有一些模式可以用来避免在所有实体类中编写markdown转换代码?
我创建一个工具类与接受减价字符串,并返回HTML的方法。我正在使用markdownj,这工作正常。
的问题是对于存储减价我可能需要一个转换为HTML的另一种方法每个类的每个属性:
public class Course{
private String description;
.
.
.
public String getDescription(){
return description;
}
public String getDescriptionAsHTML(){
return MarkdownUtil.convert(getDescription());
}
.
.
.
}
的问题有,如果课程班有2次以上性学费和先决条件说,都需要转换器,那么我将不得不编写getTuitionAsHTML()和getPrerequisiteAsHTML()。
我觉得有点难看,想要一个更清洁的解决方案。需要此类的类不是单个继承层次结构的一部分。
我正在考虑的另一个选择是在控制器而不是模型中执行此操作。你对此有何看法?
谢谢。
[编辑]:新思想(谢谢贾斯珀)。由于该项目使用struts2(我之前没有这样说过),所以我可以创建一个视图组件,表示会为我转换markdown。然后,无论我需要将值显示为HTML,我都会使用它。
虽然我没有看到一个共同的接口如何帮助这里。我使用struts2的,所以也许我将创建转换降价为HTML和满足“自己的看法”的要求的定制组件。 – 2008-10-31 16:35:21
通用界面将更容易以相同的方式处理所有项目。假设你有一个MarkupEntities组合,你可以简单地遍历组合并以多态的方式标记它。 然而,使用一个组件,用于在视图中标记的解决办法似乎最好在这种情况下:-) – 2008-10-31 18:22:55