设计范例,用于从XML文件中实例化对象

Tra*_*svi 2 java design-patterns

对于uni赋值我正在编写一个java程序,它需要保存对象层次结构并将其加载到XML文件中.例如,程序创建一个Zoo类,其中包含Animals的子类列表,将其保存到XML,并在下次用户启动程序时再次加载.

该文件可能看起来像

<Zoo>
    <Animals>
        <Lion>
            <name>Leo</name>
            <age>5</age>
            <roar>fearsome</roar>
        </Lion>
        <Elephant>
            <name>Dumbo</name>
            <age>10</age>
            <ears>let him fly</ears>
        </Elephant>
    </Animals>
</Zoo>
Run Code Online (Sandbox Code Playgroud)

我需要支持少量有限数量的动物子类(~5).每个动物的子类都有各自的属性(如Ears和Roar).我很困惑对象创建和文件创建的最佳设计模式是什么.

目前,我有一个类XMLCreator,有方法,例如void createZooElement(Zoo),void createLionElement(Lion)等等等等,并与XMLReader类private Zoo createZoo(File),private Lion createLionObject(Element).

如果这是您希望将来由其他人维护的代码,这是一个很好的方法吗?或者每个对象应该有一个构造函数方法,它将File/Element作为参数,另一个方法返回File/XMLElement?哪种封装/可维护性最强?

JB *_*zet 9

我只想使用JAXB,它允许将对象树(带注释的类)编组为XML,并将XML解组为对象树.还有其他Object to XML API,但JAXB附带Java SE并且运行良好.