假設這些都是您的要求,
使用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