Предполагая, что это ваши требования,
- Приложение-редактор, которое использует xml (beerxml) в качестве источника данных.
- Средство просмотра, отображающее доступные данные (в табличном формате или каклисты)
- Пользователь может добавлять / удалять / редактировать записи в каждом xml
- Существует связь между xmls (источниками данных) (не уверен ...)
Перед применением любого шаблона проектирования следует начать применять базовые концепции ООП для идентификации и создания классов (состояния и поведения) и определения взаимосвязи между классами.
Например, receipes.xml используется для обозначения рецептов, используемых для изготовления продукта.Чтобы создать класс для этого, пройдите xml.Вы можете идентифицировать следующие классы данных (объекты, то есть экземпляры классов, представляют сущность реального мира, в то время как класс больше похож на шаблон / чертеж для объекта):
- Recipe (основной класс)
- Хмель
- Ферментируемый
- Дрожжи
- Вода
- Стиль
- Оборудование
- Маш
- MashStep и т. Д.
После того, как вы определили классы, которые формируют вашу модель данных (информационное хранилище), определите свойства и поведение каждого класса.Например, класс Yeast
будет содержать свойства Name
, Version
и т. Д.Не беспокойтесь о типе свойства (строка, целое число и т. Д.).
Чтобы идентифицировать контроллеры, просмотрите приложение с точки зрения пользователя.Каковы варианты использования (что пользователь делает с приложением? Редактировать? Добавить? И т. Д.).Эти варианты использования непреднамеренно потребуют обработки информации в определенном потоке (последовательности).Информация доступна в ваших модельных классах.Контроллер будет вызывать операции над модельными классами и определять взаимодействие между ними.
Например, предположим, что есть вариант использования, который требует добавления новых дрожжей в систему.Затем контроллер создаст новый экземпляр класса Yeast
и заполнит его значениями, предоставленными пользователем (после некоторой проверки).Затем созданные дрожжи будут добавлены в ListOfAvailableYeasts
и предоставлены другим классам.
Представление (как следует из названия) - это пользовательский интерфейс для ваших данных.В MVC представление обычно обновляется наблюдателем, который отслеживает изменения модели и соответствующим образом обновляет интерфейс (есть несколько вариантов в шаблоне MVC).
Основная точка здесь нужно сначала сосредоточиться на проектировании ориентации объекта, а не переходить непосредственно к шаблонам проектирования.
Если вам нужны рекомендации по созданию классов из xml, посмотрите на xsd.exe инструмент.Вы можете сгенерировать xsd (схему xml) из xml и затем использовать этот xsd для генерации иерархии классов для xml (я предлагаю начать с recipes.xml).Вы можете изменить сгенерированные классы по вашему требованию.
Сгенерированные классы будут выглядеть примерно так:
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.3038")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
public partial class RECIPESRECIPE {
private string nAMEField;
private string vERSIONField;
private string tYPEField;
private string bREWERField;
private string aSST_BREWERField;
private string bATCH_SIZEField;
...
}
Надеюсь, что этого достаточно для начала работы.