2010-12-28 3 views
0

У меня есть шаблон дизайна Вопрос в Java/J2EEDesign Pattern Вопросы в Java

Постановка задачи ::
Предположим, что существует 2 файла, как показано ниже

XYZ.properties файл -> имя = пара значений
Файл abc.xml -> атрибут = значение.

Оба вышеуказанных файла имеют <name,value> пар.

Вопрос: «Создайте страницу компонента/jsp, чтобы вы могли читать, редактировать, сохранять пары имени, значения либо файла свойств, либо XML-файла.?»
Итак, какой шаблон дизайна вы бы предложили, я должен использовать в Java.?
Имя, значения пары затем извлекаются и отображаются в другой JSP странице, где я должен быть в состоянии читать, редактировать, сохранять имя, значение пары таким образом, что
1> прочитать результаты работы в чтении имя, значение пары
результаты 2> Изменить операции при редактировании имени, значение пары
3> Сохранить результаты работы в сохранении значения для соответствующего имени, пара значений в базе данных и, следовательно, обновляет либо файл свойства/XML.

**My Initial Analysis** : i would use a Factory design pattern since i have 2 files which have name,value pairs and at run time decide which one to choose depending on the name of file invoked,Once done i would pass the parameters to jsp file for Read,edit and save operation.Save would save the name,value pair to Database but i dont know how will it update the corresponding value for that name in either the property/xml file as well.

ли мое понимание правильно? Если нет, укажите проект/решение в java для того же самого, чтобы выполнить операцию READ, EDIT, SAVE для пар в «файле .properties» или «.xml-файле»?

ответ

0

Я думаю, что заводская модель правильная. Сделать абстрагированным getInstance(fileName), read, create, update, remove методы.

В качестве предположения вы можете захотеть вернуть реализованный экземпляр после проверки содержимого файла - если это 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; 
    } 

и

public class PropsFileEditor 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 
} 
+0

У вас есть решение для этого в java, так как им не удалось продолжить. – Deepak

+0

Deepak: Я обновил ответ столько, сколько нужно от дизайна POV. Надеюсь это поможет. – Nishant

+0

У меня есть пояснение, во время операции сохранения(), как бы я гарантировал, что сохранение будет выполнять 2-х шаговый процесс. Сохранение с сохранением будет сохранено в базе данных и 2-е сохранение, чтобы сохранить значение, соответствующее значению для имени либо в .properties, либо. xml file – Deepak

1

Заводской шаблон выполнит эту работу.

Создать абстрактный класс с абстрактным чтения, изменения, сохранения и методы геттер и сеттер ключ и значение

создать две отдельные классы для .properties и .xml реализации, которые расширяют абстрактный класс.

Всякий раз, когда вы хотите сохранить проверку экземпляра класса и вызвать соответствующий метод.