传递XML对象与填充结构

时间:2008-11-13 18:52:36

标签: xml flash actionscript-3

Actionscript 3.0具有不错的原生XML支持,所以我很惊讶地看到很多人加载外部XML然后将对象传递给代码的各个模块/部分。

然而,我的本能是创建一个类(即具有静态命名/类型字段),从XML填充它并传递它。优点是将结构与消息/数据格式分离,但是你确实失去了XML提供的可搜索性,如果你有很多嵌套结构,我可以看到它可能涉及很多初始处理时间来转换它。

那么这里的最佳做法是什么?对于非常小的项目/用例,我仍然只使用XML,但是当它变得更大,或者我有先见之明时,我倾向于使用类路径。

4 个答案:

答案 0 :(得分:1)

我想说,由于XML对象没有静态结构,因此很容易让错误蔓延到系统中,并且使代码的可读性和可理解性降低很多。

所以我会说是的,一个课程是要走的路,这是额外的努力但是你的系统因为它而更加结构化。

我过去曾尝试围绕XML对象包装类,但这可能会使这些类中的代码看起来很混乱。

我目前正在尝试使用我编写的XMLObjectBinder类(纯动作脚本项目而不是Flex)将XML对象绑定到对象,因为我发现这种方法是最简洁的,因为XML尽快脱离了图片。所以我的类现在更清洁,因为它们内部缺少XML,而绑定通常是来自工厂的一行调用。

在可搜索性方面我同意你输了但我会说工厂模式结合一些XML到对象绑定会消除很多这些问题。

答案 1 :(得分:0)

我倾向于创建“reader”类,它们加载数据并将其存储在自己的XML对象中。然后,我将XML中所需的任何数据传递给其他对象作为本机类型。

答案 2 :(得分:0)

我无法与ActionScript对话,但我认为我在VB6和C#中的体验可能是相关的:

XML消息格式发生变化。当他们这样做时,与消息格式紧密耦合的代码会中断。如果您可以在一个位置保留与XML互操作的所有代码,则可以包含对应用程序的损坏,即消息格式发生变化。从XML构建对象,然后使用代码中的对象,可以使大部分代码与消息格式的更改保持隔离。

有很多应用程序没有太大的风险 - 例如,可以将代码的逻辑结构耦合到XML的结构,因为XML镜像了应用程序域的逻辑结构。所以你必须在决定采取哪种方法时使用一些判断。

答案 3 :(得分:0)

最后,我首选的解决方案是从数据中填充类,但只要我需要可搜索性,就会在某处保留对XML的引用。