重寫NHFrog一 Frog物件的XML序列化

2022-03-13 21:51:42 字數 920 閱讀 8704

近來比較有空,想重寫nhfrog。一來原架構只考慮了型別的增加;二來後期的修改累計很多,架構已變得很不便利;三是向專案新增、修改源**還是在用似乎很笨的方法,而這部分之前考慮的解耦很不到位。

看看在用的生成器主介面

左側的編輯的各類物件,現在有實體、分組、列舉三大類物件。

原來想不這個估計不會再有其他了,可後期又陸續增加了基礎實體、介面型基礎實體。所以這次打算也讓他允許擴充套件。右側是編輯器,每種型別都有自己的編輯器。當然基礎實體、介面型實體與實體都統一用乙個編輯器。

編輯器明顯能用mvc去架構。左側則要想想,因為左側的資料都是以xml字元的形式儲存起來的。原來不考慮擴充套件,可以這樣來定義

code

//////

設定、獲取frogs

///[xmlarrayitem(type 

=typeof

(objectgroup)),

xmlarrayitem(type 

=typeof

(entity)),

xmlarrayitem(type 

=typeof

(enumspace.enumobject))]

public

frogobjectcollection frogs

set}

這就是第乙個問題:動態子類xml序列化問題。現在版本已是第四版,xml格式也有三個版本了。要定義的乙個讀取器,處理三個不同的xml格式,策略模式應該適用。

第二個問題:增加物件改動的事件。可以利用觀察者模式,方便那些需要知道物件資料已被增加、修改、刪除。

物件導向 重寫(override)

子父類中成員函式的特點。特殊情況 子父類中定義了一模一樣的函式 執行的結果是 子類的函式在執行。這種情況在子父類中,是函式的另乙個特性 override 重寫,覆蓋,複寫 重寫什麼時候用?舉例 描述手機。class phone phone p new phone p.show 隨著 的公升級,希望顯...

物件導向 重寫 Final

1 存在父子關係,方法 2 只有當父類的方法滿足不了子類的需求,才會重寫1 私有方法不能重寫 可以重新出現,但是不是重寫 新增 2 靜態方法不是重寫 可以重新出現,但是不是重寫 新增 3 final修飾的方法不能重寫 在子類中就不能再出現使用 進行比較使用equals方法進行比較效率比equals高...

JS原型物件重寫問題

function person var friend new person 新建乙個person例項 重寫person的原型 person.prototype friend.sayname 返回結果是undefined var friend new person 重寫原型物件後新建person的例項...