重写NHFrog一:Frog对象的XML序列化

作者计划对NHFrog进行重构,解决原有架构问题并增强扩展性。本次改进将着重于优化对象管理和编辑流程,并采用MVC架构提升编辑器的灵活性。

近来比较有空,想重写NHFrog。一来原架构只考虑了类型的增加;二来后期的修改累计很多,架构已变得很不便利;三是向项目添加、修改源代码还是在用似乎很笨的方法,而这部分之前考虑的解耦很不到位。

看看在用的生成器主界面

左侧的编辑的各类对象,现在有实体、分组、枚举三大类对象。

原来想不这个估计不会再有其他了,可后期又陆续增加了基础实体、接口型基础实体。所以这次打算也让他允许扩展。右侧是编辑器,每种类型都有自己的编辑器。当然基础实体、接口型实体与实体都统一用一个编辑器。

编辑器明显能用MVC去架构。左侧则要想想,因为左侧的数据都是以XML字符的形式保存起来的。原来不考虑扩展,可以这样来定义

ContractedBlock.gifExpandedBlockStart.gifCode
/// <summary>
/// 设置、获取Frogs
/// </summary>
[XmlArrayItem(Type = typeof(ObjectGroup)),
XmlArrayItem(Type 
= typeof(Entity)),
XmlArrayItem(Type 
= typeof(Enumspace.EnumObject))]
public FrogObjectCollection Frogs
{
    
get{return this.mFrogs;}
    
set{this.mFrogs = value;}
}

这就是第一个问题:动态子类XML序列化问题。现在版本已是第四版,XML格式也有三个版本了。要定义的一个读取器,处理三个不同的XML格式,策略模式应该适用。

第二个问题:增加对象改动的事件。可以利用观察者模式,方便那些需要知道对象资料已被增加、修改、删除。

转载于:https://www.cnblogs.com/kevin-Y/archive/2009/11/16/1603840.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值