重写NHFrog一:Frog对象的XML序列化
近来比较有空,想重写NHFrog。一来原架构只考虑了类型的增加;二来后期的修改累计很多,架构已变得很不便利;三是向项目添加、修改源代码还是在用似乎很笨的方法,而这部分之前考虑的解耦很不到位。
看看在用的生成器主界面
左侧的编辑的各类对象,现在有实体、分组、枚举三大类对象。
原来想不这个估计不会再有其他了,可后期又陆续增加了基础实体、接口型基础实体。所以这次打算也让他允许扩展。右侧是编辑器,每种类型都有自己的编辑器。当然基础实体、接口型实体与实体都统一用一个编辑器。
编辑器明显能用MVC去架构。左侧则要想想,因为左侧的数据都是以XML字符的形式保存起来的。原来不考虑扩展,可以这样来定义
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
这就是第一个问题:动态子类XML序列化问题。现在版本已是第四版,XML格式也有三个版本了。要定义的一个读取器,处理三个不同的XML格式,策略模式应该适用。
第二个问题:增加对象改动的事件。可以利用观察者模式,方便那些需要知道对象资料已被增加、修改、删除。