一个通用高自由度技能系统的设计(二) Data基类设计
2016-07-21 10:04
344 查看
任何系统设计都需要进行分层设计,首先我们先设计数据层。数据层由抽象基类派生出不同数据类。
这些基类用于存储技能的一些基础数据,后面放置到技能类当中用于逻辑运算
技能系统Data类基类设计:
ConditionData数据类都是由ConditionData基类派生而出的。
ConditionData基类:
CommandData基类:
TargetPickerData基类:
这些基类用于存储技能的一些基础数据,后面放置到技能类当中用于逻辑运算
技能系统Data类基类设计:
public class BaseData { public BaseData() { } public virtual BaseData Clone() { BaseData data = new BaseData(); CopyTo(data); return data; } protected virtual void CopyTo(BaseData destinationData) { } }
ConditionData数据类都是由ConditionData基类派生而出的。
ConditionData基类:
public class ConditionData : BaseData { public ConditionData() { } public virtual ConditionType GetDataType() { return ConditionType.DEFAULT; } public override BaseData Clone() { ConditionData data = SkillConditionFactory.CreateSkillConditionData(GetDataType()); CopyTo(data); return data; } }
CommandData基类:
public class CommandData : BaseData { public CommandData() { } public virtual CommandType GetDataType() { return CommandType.COMMAND_DEFAULT; } public override BaseData Clone() { CommandData data = CommandFactory.CreateCommandData(GetDataType()); CopyTo(data); return data; } }
TargetPickerData基类:
public class TargetPickerData : BaseData { public int TargetMaxNum = 0; public TargetPickerData() { } public virtual TargetPickerType GetDataType() { return TargetPickerType.TARGET_PICKER_DEFAULT; } public override BaseData Clone() { TargetPickerData data = TargetPickerFactory.CreateTargetPickerData(GetDataType()); CopyTo(data); return data; } protected override void CopyTo(BaseData destinationData) { base.CopyTo(destinationData); TargetPickerData data = (TargetPickerData)destinationData; data.TargetMaxNum = TargetMaxNum; } }
相关文章推荐
- php 文件操作
- Android手机APP广告植入与产品上线
- Git 学习笔记三
- lr各种问题以及解决办法
- SQL Server 存储过程
- 树状图
- NLog 自定义字段 写入 oracle
- setjmp和longjump 用法
- 解除springmvc限制参数对象映射个数不能超过256个
- char * a, char ** a, char * a[], char a[][], char * a[][], char ** a[][], char * a [][][]学习
- Linux C多线程编程注意事项及数据处理
- 递归的logN的优化(菲波那契数列,青蛙上台阶问题,母牛问题)!!!!
- Android Selector使用案例
- Android学习路线图
- jsp学习(三)
- Android学习路线图
- Android学习路线图
- Android堆栈分析
- C#修改文件或文件夹的权限,为指定用户、用户组添加完全控制权限
- java jsp与jquery easyui整合代码下载,有n个demo教程