因此,用於創建結構化XML的結構是通過某種類的結構定義的。是否有一個很好的包裝語言的設計模式,以便只有定義的操作纔會發生?相互依賴的語言包裝器的設計模式
每個項都包含自己的XElement)
- MSBuildDoc(DOC的發電機)
- MSBuildTarget(目標)
- MSBuildMessageTask
- MsBuildCallTask
- MsBuildBuildTask
- MSBuildTaskOutputElement
我想構建一個框架,使孤兒是不可能的,只有有效的組合工作,有效的組合可以從一個項目的實例步行。
相互依賴的事實是,使用Add(common interface or superclass)
或AddAfterSelf(common interface or superclass)
等方法需要已經創建子/同級。如果構造函數是公共的,那麼你可以直接創建一個孤兒。
例子:
var msb=new MSBuildDoc();
var mainTarget=new MSBuildtarget(); //created as orphan
msb.Add(mainTarget); // add is free to accept anything even invalid child types
使用創建方法(靜態或不)會直接創建孤兒。
使用AddSubType方法需要子類型的實現細節(構建它需要什麼)來生活在父類中。
例子:
var x=new MSBuildDoc();
var mainTarget=x.AddTarget("Main") //AddTarget method is defined in the parent class
.SetAttributeFluent("BuildInParallel","true");
mainTarget.AddBuildTask(alltargets);
我認識到,做一個詳盡的包裝幾乎是毫無意義和荒謬的。我正在嘗試包裝我在項目中使用的極少數部分,以便核心類非常易讀並且非常易於維護。