2017-04-06 78 views
1

我有一个Order值对象与getter。目前我将这个对象传递给一个Formatter类,它使用getters创建一个特定的数组结构。然后将此数组编码为JSON并发送到远程URL。“格式化”对象的模式名称

有不同的网址需要不同的数组结构,所以我创建了多个Formatter类,它们构建了各自的数组。在某种程度上这些格式化程序'包装'原始对象,但我没有一个公开的getter方法从格式化程序暴露原始对象。另外,每个格式化程序中只有一个公开方法,称为format

这些格式化程序可以被描述为装饰/包装模式还是甚至是一种模式?我不明确寻找为了应用模式,但我发现我在代码的其他部分使用其他模式,并适当更名,以减少混淆。

+0

是不是一个串行器?是'format'将其序列化为JSON的唯一目的? –

回答

0

考虑Visitor模式。访问者允许在运行时将一个或多个操作应用于一组对象,将操作与对象结构分离。

访问者在编译器中使用。一旦创建了抽象语法树(对象结构),就可以为了不同目的遍历AST。 在你的情况下,ObjectStructure可以是Order类,不同的目的是镜像不同的Formatter。

+0

下面是一个问题,其答案显示了Visitor模式的实际用法:[多输出格式的设计模式](http://stackoverflow.com/questions/6827998/design-pattern-for-multiple-output-formats) –