Java中的设计模式问题

Java中的设计模式问题,java,design-patterns,Java,Design Patterns,我有一个关于Java/J2EE的设计模式问题 问题陈述:: 假设有2个文件,如下所示 XYZ.properties文件-->名称=值对 abc.xml文件-->属性=值对 上述两个文件都有对 问题是“设计一个组件/jsp页面,以便您可以读取、编辑、保存属性文件或xml文件的名称、值对。?” 那么您建议我在Java中使用哪种设计模式呢? 然后提取名称、值对并显示在另一个jsp页面中,我应该能够在该页面中读取、编辑、保存名称、值对,以便 1>读取操作导致读取名称、值对 2>编辑操作会编辑名称、值对

我有一个关于Java/J2EE的设计模式问题

问题陈述::
假设有2个文件,如下所示

XYZ.properties文件-->名称=值对
abc.xml文件-->属性=值对

上述两个文件都有

问题是“设计一个组件/jsp页面,以便您可以读取、编辑、保存属性文件或xml文件的名称、值对。?”
那么您建议我在Java中使用哪种设计模式呢?
然后提取名称、值对并显示在另一个jsp页面中,我应该能够在该页面中读取、编辑、保存名称、值对,以便
1>读取操作导致读取名称、值对
2>编辑操作会编辑名称、值对
3>保存操作会在数据库中保存相应名称、值对的值,并因此更新属性/xml文件。

**我的初始分析**:我会使用工厂设计模式,因为我有两个文件,它们有名称、值对,在运行时根据调用的文件名决定选择哪一个,一旦完成,我会将参数传递到jsp文件以进行读取、编辑和保存操作。保存会保存名称,值对到数据库,但我不知道它如何更新属性/xml文件中该名称的相应值。


我的理解正确吗?如果没有,请提供java设计/解决方案,以便对“.properties文件”或“.xml文件”中的配对执行读取、编辑和保存操作?

我认为工厂模式是正确的。使抽象的
getInstance(fileName)
读取
创建
更新
删除
方法

作为建议,您可能希望在检查文件内容后返回实现的实例——它是XML(通过检查XML头或根标记的存在)还是属性文件


理想情况下,我会创建一个类似这样的MyFileFactory类

  public class MyFileFactory{
     public static final MyFileFactory getInstance(String filename){
        //read the file header or first line to guess what instance to call
        int fileType = getFileType(fileName);
        if(fileType == MyFileFactory.XML_FILE)
            return new XMLFileEditor(fileName);
        else
            return new PropsFileEditor(fileName);
     }
     public abstract readFile();
     public abstract writeToFile();
     public abstract editFile();
  }
让这些类来实现这些方法

  public class XMLFileEditor extends MyFileFactory{
   ...
   private File f;
  }

我觉得你很适合去


如果要保存在数据库和文件中:

 writeToFile(String new_Node_or_property){

   //parseNode converts the property or XML node to an object  
     MyNode node = MyNode.parseNode(new_Node_or_property);
     MyFileDAO.insert(node);//write a code that parse
   // write here code to append in the file based on what 
   // filetype implentation it is -- XML, .properties, YAML whatever
 }
这看起来像是家庭作业。
属性可以读/写.Properties和.xml文件,而不会泄露太多信息,更多信息请参见

工厂模式可以完成这项工作

使用抽象读取、修改、保存方法以及键和值的getter和setter创建一个抽象类

为扩展抽象类的.properties和.xml实现创建两个单独的类


每当你想保存类实例的检查并调用相应的方法时。

你有java的解决方案吗,因为我无法继续。Deepak:我已经根据需要从design POV中更新了答案。希望这能有所帮助。在save操作()期间,我有一个澄清,如何确保保存将执行两个步骤。第一个保存将是数据库保存,第二个保存将名称的对应值保存在.properties或.xml中file@Deepak:请更新您希望保存在数据库中的问题以及该问题的来源文件。我的
parseNode
方法应该如何使用看起来像
 writeToFile(String new_Node_or_property){

   //parseNode converts the property or XML node to an object  
     MyNode node = MyNode.parseNode(new_Node_or_property);
     MyFileDAO.insert(node);//write a code that parse
   // write here code to append in the file based on what 
   // filetype implentation it is -- XML, .properties, YAML whatever
 }