假设这些都是您的要求,
使用XML(beerxml)
- 编辑器应用程序,因为它的数据源。
- 查看器显示的可用数据(以表格的形式或作为片材)
- 用户可以在每个XML
- 添加/删除/编辑条目存在着个XML(数据源)之间的关系(不确定... )
在应用任何设计模式之前,您应该开始应用基本的OOP概念来识别和创建类(状态和行为)并定义类之间的关系。例如,receipes.xml用于表示用于制造产品的配方。为此设计一个类通过xml。您可以识别以下数据类别(对象即类的实例代表现实世界的实体,而类是对象更像一个模板/蓝图):
- 配方(主类)
- 合
- 发酵
- 酵母
- 水
- 风格
- 设备
- 醪
- MashStep 等。
确定了构成数据模型(信息存储库)的类后,确定每个类的属性和行为。例如,Yeast
类将包含属性Name
,Version
等。不要担心属性的类型(字符串,整数等)。
要识别控制器,请从用户的角度查看应用程序。什么是用例(用户如何处理应用程序?编辑?添加?等)。这些用例会无意中要求处理特定流程(序列)中的信息。这些信息在您的模型类中可用。控制器将调用对模型类的操作并确定它们之间的交互。
例如,假设有一个用例需要向系统添加新的酵母。然后,控制器将创建一个Yeast
类的新实例,并用用户提供的值填充它(在执行某种验证之后)。然后将创建的酵母添加到ListOfAvailableYeasts
并提供给其他类。
该视图(正如其名称所示)是您的数据的用户界面。在MVC中,视图通常由观察者更新,观察者监视模型的变化并相应地更新UI(MVC模式有几种变化)。
要点这里应该首先关注物体方向设计,而不是直接跳入设计模式。
如果您需要关于如何从xml创建类的一些指导,请参阅xsd.exe工具。您可以从xml生成xsd(xml schema),然后使用此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;
...
}
希望这是足以让你开始。
从开始的名称中删除“NS”前缀。 – 2011-06-09 21:07:17
数组已经有了类,为什么你要创建更多的类? – 2011-06-09 21:09:59
我的意思是你应该有一个类,比如叫做hopBill。有哪些方法可以从hopBill中添加/删除hopAdditions。让数组控制器管理类中的数组? – Joran 2011-06-10 06:36:31