Java 对于可以在xml文件中存储某个对象并将其读回的类,什么是合适的名称?
我有一个名为Java 对于可以在xml文件中存储某个对象并将其读回的类,什么是合适的名称?,java,oop,naming-conventions,naming,Java,Oop,Naming Conventions,Naming,我有一个名为TestPlan的类(简单地说,假设它是一个普通的javabean) 我需要在xml文件中存储TestPlan实例(每个文件一个实例)。我所看到的最合适的方法是使用另一个类,它应该只做与xml相关的工作 它将有如下方法: public TestPlan parseTestPlanXml(InputStream xmlFile) { TestPlan testPlan = new TestPlan(); //parse xmlFile and set testPlan
TestPlan
的类(简单地说,假设它是一个普通的javabean)
我需要在xml文件中存储TestPlan
实例(每个文件一个实例)。我所看到的最合适的方法是使用另一个类,它应该只做与xml相关的工作
它将有如下方法:
public TestPlan parseTestPlanXml(InputStream xmlFile) {
TestPlan testPlan = new TestPlan();
//parse xmlFile and set testPlan fields via setters
return testPlan;
}
public OutputStream writeTestPlanXml(TestPlan testPlan) {
//the actual implementation just copies the original xmlFile,
//makes necessary modifications
//and writes it to ByteArrayOutputStream
...
}
你建议给这个班取哪个名字?(顺便说一句,如果你还可以为这两种方法推荐更好的名称,那么请不要犹豫)
谢谢 TestPlanXMLStreamer就个人而言,我不相信人为地缩短我的类的名称,因此您可能会发现这个建议太长了 TestPlanToXMLFileProcessor 我考虑使用Writer而不是Processor,但希望避免与FileWriter之类的人产生潜在的混淆
理想情况下,您的类将更通用,可以用于除TestPlan对象之外的某些对象,然后您可以在其他项目中重用它,但我们都知道这并不总是可能的,甚至是不合理的。如果类只负责加载/保存
TestPlan
对象,而且它没有其他类似的方法来加载/保存其他类的对象,可能是这样的
class TestPlanXmlMarshaller {
public TestPlan load(InputStream xmlFile) {
...
}
public OutputStream save(TestPlan testPlan) {
...
}
}
这样,根据测试计划,TestPlan
和XML
不会在方法名称中不必要地重复
但是,如果类处理多个类型,则
load
方法需要具有不同的名称,因为不能仅在返回类型上重载方法save
可以使用不同的类型参数重载,但为了一致性,这两种类型都应该使用相同的命名约定。这在我看来非常像一个序列化程序,所以TestPlanSerializer或TestPlanXmlSerializer(如果您想具体说明的话)。TestPlan2XmlConverter怎么样
我还建议在设计上稍作修改:您的两个方法可以读取和写入XML字符串;这将使它们更加通用和灵活。然后你可以有另外两种相应的方法:
- 一种方法是将XML文件读入XML字符串,然后对该字符串调用parseTestPlanXml
- 另一个调用writeTestPlanXml,然后将生成的XML字符串写入XML文件
TestPlanXMLReader
和TestPlanXMLWriter
writeTestPlanXml返回一个输出流@弗里德:我还不清楚。TestPlanXml应在“保存”后通过网络发送。如果我认为有必要将其存储在本地计算机和远程计算机上,那么此方法将保存一个xml文件,另一种方法将通过网络发送文件内容。无论哪种方式,您的写入函数都必须写入某些内容,不是吗?您现在拥有的是一个返回其他人可以写入的流的函数,这对我来说没有意义。如何使用字符串使它们更灵活?流可以写入IO对象或内存中的表示—字符串始终位于memory中。我建议使用读写器而不是流,如果格式是基于文本的。@自由:嗯,也许我有点被我通常在C++中所做的方式所迷惑了。感谢您指出streams的功能。:-)这实际上是一个评论,而不是对问题的回答。请使用“添加评论”为作者留下反馈。如果我在两年前才有这样的见解…它是在低质量的后期评论中出现的,并且是作为SO清理程序的一部分完成的。。。老实说,我也有一些这样的帖子;)